ddubbert / dub.io

Agar.io clone based on Continuous Event Streams and Microservices. Implemented with Node.js, GraphQL and Apache Kafka.
MIT License
1 stars 0 forks source link

Are GraphQL-Subscriptions efficient enough or should Kafka streams be used to communicate map changes to each client? #6

Closed ddubbert closed 4 years ago

ddubbert commented 4 years ago

Implementation details should be hidden from the outside world. That is why board updates should be served by the corresponding service via GraphQL Subscriptions, to hide internal Kafka usages, topics, host, ports and so on. The question is simply if such a subscription has enough throughput to serve 60 or more updates a second.

ddubbert commented 4 years ago

To test this, the implementation will depend on subscriptions first. If they are not sufficient enough, they can be swapped out so that a client will directly be connected to Kafka topics.

ddubbert commented 4 years ago

While implementing the Game, no performance issues where noticeable so that GraphQL-Subscriptions where kept as the message medium for a client.