[DiscordArchive] Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the wor
[DiscordArchive] Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the wor
Archived author: walkline • Posted: 2023-07-13T15:59:43+00:00
Original source
Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the worldserver, such as guilds, whisper chat, who packet, mails (almost done), and GUID generation. These functionalities have been split among several services.
Here are the things that need to be moved from the worldserver or reworked:
Parties (and raids)
Battleground and arena queue and functionality
Global channels
Friends list
Auction House
Looking For Group queue and functionality
Sync transports between gameservers/worldservers
Is this what you mean when you refer to "thread-unsafe functionality"?
Archived author: Foe • Posted: 2023-07-13T16:01:03.008000+00:00
Original source
A good way to get a quick overview of what's safe/unsafe is to take a look at the opcode list, most of it is documented whether or not it's safe or unsafe. The thread-unsafe stuff generally happens directly in the world update loop, while the thread-safe is generally processed in the per-map context and is handled in the map update loop
Archived author: Foe • Posted: 2023-07-13T16:03:37.859000+00:00
Original source
But yeah, those are things that all happen in the world update loop and would be good to split out to some extent
Archived author: Foe • Posted: 2023-07-13T16:05:57.742000+00:00
Original source
I would probably combine a few of those (ie. guild and chat) into a single service though, like "Social" service. I can't imagine there's enough of a performance benefit vs maintenance/complexity benefit to go *too* granular
Archived author: Foe • Posted: 2023-07-13T16:08:31.747000+00:00
Original source
There's definitely a discussion to be had somewhere about the semi-monolithic approach and complete microservice approach. I'm not opposed to either, I think it's a neat concept regardless, but I could see there be some latency and overhead issues with too much granularity
Archived author: Foe • Posted: 2023-07-13T16:12:17.001000+00:00
Original source
If the end goal is a complete microservice infrastructure, I would definitely keep K8S in mind from the get go
Archived author: Foe • Posted: 2023-07-13T16:16:44.327000+00:00
Original source
Also, something neat to keep in mind, the 3.3.5 client does support a world server relocate packet, it was just never used at the time