Concurrency Control in Event-Driven Architectures

10 min

Scalability and high availability

Event-driven architectures are architectures where events play a central role. These kinds of architectures have certain advantages, like being able to scale easily and providing resilience. There are also some downsides to such architectures. For example, individual services may be hard to test in isolation. Another point of attention is concurrency control. I’ll explain concurrency control and offer two generic solutions to implement it. To make things more concrete, I’ll also cover two example architectures. There are some examples from different domains. The example architectures are from the retailer domain.

We'll cover

  • Event-driven architectures.
  • Events and their source.
  • Using a database to synchronize between applications.
  • Using the single and dual writer principle.
  • Services use Kafka vs Axon Server
Gerard Klijs
Software Engineer. With over 10 years of experience as a backend engineer, Gerard Klijs is a contributor to several GraphQL libraries, and also the creator and maintainer of a Rust library to use Confluent Schema Registry. He has an interest in event sourcing and CQRS and likes sharing knowledge via blogs, talks, and demo projects.
Gerard Klijs