The document describes the architecture of Falcon, a new Scala-based backend chat messaging system. The key aspects of the architecture are:
- It uses an event-driven architecture with CQRS and event sourcing principles. Writing and reading are separate with different data models and storage.
- Events are stored in Kafka for durability and consumed asynchronously by downstream systems to update read models and notify legacy systems.
- The architecture is designed for scalability, high performance, resiliency and low cost through principles like auto-sharding and parallel processing in Kafka.