~/talk

Event Sourcing & CQRS with FastAPI and Celery.

Talkat PyCon Greece 2025 · 2025-08-29..08-30· at 14:15· Innovathens Stage· [microservices, python]
links:none on file
slides:none on file

Builds an append only event store with events containing id, aggregate id, type, timestamp, schema version, revision and data, and wires writes through FastAPI and Pydantic into command handlers that load aggregates, produce events, and persist them to the store and an event bus. Projections run as Celery tasks with retry/backoff (using async-to-sync shims) to update read models. Solves 10k-event replay slowness with snapshots for 10k-event streams, surfaces eventual consistency with optimistic UI or outbox status, and turns bugs into pytest time‑travel debugging.

AI-written summary · about

  1. 0:00Introduction to talk
  2. 1:16Classic database limitations
  3. 2:01Event sourcing fundamentals
  4. 4:05CQRS pattern explained
  5. 7:24Write and read flows
  6. 8:51FastAPI implementation
  7. 10:25Command handler deep dive
  8. 11:31Aggregate business logic
  9. 12:36Celery for event processing
  10. 14:52Handling event loss risks
  11. 16:02Projection updates
  12. 17:52Eventual consistency challenges
  13. 21:12Outbox pattern for UI
  14. 22:41Performance with snapshots
  15. 24:14Debugging with event sourcing
  16. 26:44When to avoid event sourcing
  17. 28:39Summary and key takeaways
~/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.