Multiplayer Bot Architecture for Phoenix App?

I will go with second approach, although we can avoid that event server, and game-server can actually handle event delegation to bots/players. Bots will be genservers and will be registered with the game-server, and when bots have to send any message to phoenix channel, they can do that by MyAppWeb.Endpoint.broadcast!(channel_name, "bot_msg", %{"msg" => "attack"}). Channel name can be stored in the game-server.