Dynamic Consistency Boundaries
In software, Consistency may refer to many things - Code Consistency, Data Consistency, User Interface Consistency, etc. In this article, I am focusing on Data Consistency. Simply put, Data Consistency ensures that data remains accurate and reliable across different parts of a system. More formally, Data Consistency is one of the Database Transaction properties ( ACID ) defined as: Consistency (or correctness) ensures that a transaction can only bring the database from one consistent state to another, preserving database invariants. The invariants may be enforced in various ways depending on the database system. For example, in Relational Databases, there are many ways to define consistency: constraints (primary keys, foreign keys, uniqueness, etc.), ACID properties of the transaction (Atomicity, Consistency, Isolation, Durability), referential integrity, and many more. The common consensus (so far) of achieving consistency in Event Stores is that event streams define ...