~/talk

The Aggregate is dead. Long live the Aggregate!

Talkat Spring I/O 2023 · 2023-05-18..05-19· [software-architecture]
slides:none on file

Argument: traditional Aggregates bind consistency, concurrency and storage so tightly that refactoring and parallelism suffer. Proposal: replace aggregate ownership with event sourcing over queryable streams, tag events with domain identifiers, and use a conditional append (an optimistic-lock append that checks a stream query and last-event id) to avoid races. The implemented pattern named dynamic consistency boundary stores single factual events with multiple pointers, halves duplicated events, narrows contention to needed queries, simplifies refactoring, and still requires cross-bounded-context synchronization when domains span services.

AI-written summary · about

  1. 0:00Introduction
  2. 0:45What is an aggregate
  3. 3:17Five villains of aggregates
  4. 8:15Aggregate vs storytelling
  5. 9:18Aggregates mix concerns
  6. 13:16Larger aggregates contention
  7. 17:48Aggregates hard to refactor
  8. 20:16Multi-aggregate transactions
  9. 24:41Aggregate pitfalls summary
  10. 25:24Focus on behavior
  11. 30:01Concurrency without aggregates
  12. 32:08Conditional append for event sourcing
  13. 37:14Removing aggregate ownership
  14. 41:27Dynamic consistency boundaries
  15. 45:04Benefits of dynamic boundaries
  16. 47:08Conclusion and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.