DEVOURED
Thoughts on Dynamic Consistency Boundary
Dynamic Consistency Boundaries allow events to be grouped per command rather than pre-defined as streams, though implementation complexities often outweigh the benefits.
What: Oskar Dudycz argues that while Dynamic Consistency Boundaries (DCB) offer flexibility by defining consistency rules at command time using tags and types, they introduce significant technical debt. He advocates for traditional stream-based designs with better multi-stream transaction support and process management.
Why it matters: This highlights the tension between 'dynamic' modelling flexibility and the practical realities of database performance, transactional atomicity, and maintainability in event-driven systems.
Deep dive
- Argues that tag-based DCB implementations often replicate stream-based boundaries but with less predictability.
- Warns that serializable isolation levels in Postgres can kill performance under contention.
- Recommends multi-stream appends and process-oriented streams instead of tag-based filtering.
- Emphasizes that modeling errors are architectural, and tools like DCB don't fix the underlying domain design flaws.
Decoder
- Event Sourcing: A pattern where state changes are stored as a sequence of immutable events.
- Consistency Boundary: The set of data that must be updated atomically to ensure business invariants.
- Optimistic Concurrency: A strategy that checks for conflicting updates at the moment of commit rather than using locks.
Original article
Full article content is not available for inline reading.
Explore all 58 articles in today's digest
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi