~/talk

Avoiding mistakes with events

Talkat Confitura 2023 · on Saturday, 2023-06-24· [software-architecture]
slides:none on file

Checklist of concrete fixes and tradeoffs for event systems: store pivotal events (order paid, checkout completed) in the database for auditability; prefer UUID v4 or composite IDs (paymentId-orderId) and never mix nanoid and UUIDs; test and freeze JSON/Avro/Protobuf serialization and keep backward compatibility; record created/received/processed timestamps and propagate a correlation/trace id for debugging; design idempotent consumers because exactly-once delivery is impossible; use Postgres or managed Kafka (AWS MSK works) only when the use case demands it; avoid multiple delivery brokers and don’t put PII in immutable event logs without legal signoff; consider event sourcing for auditable replay but don’t default to it.

AI-written summary · about

  1. 0:00Introduction
  2. 2:58Why this talk exists
  3. 4:43Defining events
  4. 5:46Mistake: no events
  5. 8:16Solution: capture events
  6. 10:03Pivotal events
  7. 11:05Mistake: too many events
  8. 12:09Event identifiers
  9. 15:39UUIDs and versions
  10. 19:35Mistake: overcomplicating delivery
  11. 21:44Event immutability
  12. 23:29Event storage duration
  13. 24:10Mistake: multiple brokers
  14. 25:13Mistake: bad serialization
  15. 26:17Testing serialization
  16. 27:23Event schemas
  17. 28:49Documenting schemas
  18. 30:56Delivery guarantees
  19. 31:38Outbox pattern
  20. 33:02Event size limits
  21. 34:03Notification vs state transfer
  22. 35:30Time in event systems
  23. 36:11Lamport timestamps
  24. 37:15Distributed transactions
  25. 38:42Business 'now'
  26. 39:24Saga patterns
  27. 40:29Tracing and correlation
  28. 41:33Mistake: poor architecture
  29. 42:37Event storming
  30. 43:39Internal vs external events
  31. 44:44Event sourcing
  32. 46:11Recommended books on domain-driven design
  33. 47:58Closing remarks
  34. 48:20Q&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.