Towards a Scalable Architecture of Cloud Application Based on CQRS and Event Sourcing

Andrzej Dębski, Bartłomiej Szczepanik,
 Stefan Spahr, Maciej Malawski

introduction

  • Created for PaaSage platform evaluation
  • Focus on scalable architecture
  • Simple business logic

scalable Application

  • What does it do?
  • How does it work?
  • Does it scale?

What does it do?

ubiquitous language

  • Airplane is assigned to a rotation
  • A rotation consists of legs.
  • A leg is a directed relocation of airplane between two airports at given date.
  • A flight consist of legs and has a flight designator
  • Each airport defines standard ground time which is the minimum time that airplane have to spend on ground between consecutive legs
  • One can check if all legs in a rotation hold continuity property, does not violate standard ground times and flight numbers are not duplicated.

 

Rotations EXAMPLE

continuity check example

ground time check example

flight designator check example

How does it work?

building blocks

Event sourcing

Command query responsibility segratation

Application architecture

does it scale?

Read model scalability

write model scalability

akka-cluster-sharding

tools

  • Ansible
  • Kamon
  • Zipkin
  • Akka tracing
  • Gatling
  • Akka clustering JMX
  • Visual VM
  • SBT

main challenges

  • Event sourcing
    • solution: akka-persistence
  • Replayable event bus
    • solution: own on top of Kafka and Cassandra
  • Load balancing
    • solution: akka-clustering routers
  • Write model distribution
    • solution: akka-cluster-sharding

FUTURE WORK

  • Full-fledged white paper
  • Causal consistency research
  • Integration with PaaSage
  • Detailed evaluation of the architecture

TOWARDS A SCALABLE ARCHITECTURE OF CLOUD APPLICATION BASED ON CQRS AND EVENT SOURCING

Andrzej Dębski 
andrzejdebski91 @ gmail.com


Bartłomiej Szczepanik
mequrel @ gmail.com

Towards a Scalable Architecture of Cloud Application Based on CQRS and Event Sourcing

By mequrel

Towards a Scalable Architecture of Cloud Application Based on CQRS and Event Sourcing

  • 1,520