What is the best way to horizontally scale an event driven architecture when load increases?
- Many people suggest using
Kakfaas the message queue source for EDA howeverKafkaonly allows one consumer in a consumer group per partition. Repartitioning especially during heavy load situations can be costly and time consuming. - Having many consumers in a consumer group that take work and acknowledge quickly would give some horizontal scaling but now message order needs to be considered as well as load completion.
- With
RabbitMQqueues can be created and deleted on the fly however that would require an additional orchestrator to help manage and distribute load.
Also none of this addresses the load balancing problem that comes with the territory.
Any help would be appreciated. Thanks