Company
Date Published
Author
Ryan Knight
Word count
1856
Language
English
Hacker News points
None

Summary

Event-driven architectures are widely adopted patterns that model an application as a series of software components or services. Those services react to commands that represent business and/or user actions and result in events, which help modern applications solve scalability, auditability/traceability, and immutability challenges. However, event-driven architectures face challenges such as maintaining causal relationships between datasets due to the "fallacies of distributed computing," ordering of events, and enforcing consistency in a globally distributed system. Modern NoSQL databases often introduce eventual consistency, which can be difficult to reconcile, and do not provide history of data revisions or auditability. To address these challenges, event-driven architectures employ patterns such as event sourcing and Command Query Responsibility Segregation (CQRS), capturing changes to the state of a system as a series of events, and separating data structures for reading and writing information. Globally distributed ACID transactions in Fauna enable enforcement of complex business constraints, linearization of event processing, and real-time data and business logic. Fauna's unique protocol provides operational advantages by delivering a multi-tenant, quality-of-service mechanism, decoupling application development from operational activities, and solving the challenges of building an event-driven architecture.