Zoning using Authoritive-Servers, Nakama Scaling, Questions and Architecture

Greetings guys, I’ve been reading the documentation, watching videos, learning, and doing the general prep to implementing Nakama.

Now, im planning the nakama architecture that I want to use. Im going with AWS for now, plan to start with one Nakama Node and use Authoritive-Server orchestration to plan my architecture.

I simply can’t pay the monthly Nakama Cloud right now, but have a a few thousand dollars in AWS credits. (Nakama if you want to sponsor me, please do so. I applied for your GRANT). I would not mind getting Nakama Enterprise for a year or so while I develop my architecture! :slight_smile:
2021 06 25 14 55 05 - YouTube

Im a single developer, who implemented Photon in my game and want to implement a better solution for my game’s scenarios. I want the architecture to be “unified” meaning it runs one platform/framework as much as possible. Basically making it seem seamless. Nakama seemed to be the perfect solution since it has data centric features, active-multiplayer with authoritive servers, and many more features i need out of the box. These features will speed up development for me considerabily.
Please take a fast look at Exo! - exo on how our current game works, or if you want to try it download it from the app store.

This is an OVERSIMPLIFIED graph of what im trying to accomplish on AWS:

This is the TOP LEVEL view of things. I managed to get my local implementation of nakama working with no problems, but, ofcourse a production level implementation will take some planning and time, for security and performant reasons.

Im going to skip questions like “is this feasiable?” or “should I even do this?”, instead i’m going to ask questions like:

What is the best service/framework to use when begining to plan an implentation like this on AWS? Kubernetes? Some sort of AWS orchestration service?

Is Nakama capable of seperating the authoritive-servers from the data layer api? I know that you can mesh nakama nodes together, which makes sense, using ENTRPRISE EDITION.

I think the open source version should allow authoritive-server orchestration with ONE node. Specifically you have one “NAKAMA DATA API” and if you need more, well, you get ENTERPRISE. Which would be nice to have eventually.

Basically, I need one Nakama node for now to be able to launch multiple authoritative servers for performance reasons. My game is supposed to high-tick low latency, with data persistence.

Please clearify and if have suggestions for my journey please, please don’t hesitate to tell me!

@Caraveo You’ve provided a lot of info, but I’ll try to address the most important aspect. Unless I’m misreading your plans I think there’s a bit of confusion around Nakama’s authoritative multiplayer.

Nakama match handlers do not create/manage separate authoritative servers on your infrastructure. Authoritative matches run as lightweight goroutines (think green threads) inside the Nakama server. Clients do not have connections to authoritative matches outside of the standard client socket connection to Nakama. Match data exchange takes place over that same socket.

Does this change your plans or architecture design?

(If I’ve misunderstood and you don’t intend to use Nakama’s authoritative multiplayer then you can of course pursue your intended design. Nakama can comfortably sit as a “component” of your infrastructure, there’s no requirement for it to be your whole infrastructure. :+1:)