← Graph

Events events events

talk 25 connections

Anton Davydov's wroclove.rb 2019 talk. Introduces event sourcing as a pattern of persisting what happened (immutable events) instead of current state, then folding events into state via projections (a function of reducer, events, initial state). Uses git commits as a real-world analogy. Covers event stores (Oracle, MongoDB, Kafka, Redis, in-memory), immutability, validation before storing, data evolution (optional fields, binary formats, versioning), performance optimizations via streams (per-aggregate partitioning) and snapshots (cache a computed state; read models can use Redis, MySQL, Cassandra, etc.), real-world use cases (e-commerce orders, checkout flow, Google-Docs-style versioned collaboration, history like GitHub, game tracking systems like Dota replays), clarifies that event sourcing ≠ event-driven architecture, and that blockchain is not the solution. Discusses benefits (communication with domain experts, logs for free, time-travel, flexible schema) and problems (hard to learn/hire, hard to get state across graphs of events, distribution, updating/deleting events). Advising topics: optimistic UI vs WebSockets/long-polling for fast display; deleting user data three ways — Martin Fowler's reactive approach, encrypt-and-lose-key, and Kafka compaction. Ruby options: Ruby Event Store gem (production), plus speaker's own hanami-events gem for event-driven transport with pluggable adapters (memory sync, memory async, Redis) via dry-container. Ends with patterns (Saga as state machine, CQRS read/write split), the awesome-ddd GitHub list as inspiration from F#/.NET communities, and recommendations of Designing Data-Intensive Applications and a DDD book. Q&A on GDPR + quantum computers, snapshot-based searching via Elasticsearch, and the long-run cost of event sourcing.

type
talk
talk Events events events
about
Event Sourcing concept
Core subject: introducing event sourcing to Ruby developers.
talk Events events events
about
Event Store concept
Explains the event store as append-only immutable persistence.
talk Events events events
about
Event Stream concept
Introduces per-aggregate streams to speed up projection.
talk Events events events
about
Shows projection as a pure fold over events with initial state.
talk Events events events
about
Snapshotting concept
Proposes caching computed state as a snapshot to avoid re-folding every time.
talk Events events events
about
Data Evolution concept
Discusses evolving event schemas via optional fields, versions, and binary formats.
talk Events events events
about
Saga Pattern concept
Introduces sagas as business transactions modeled as state machines.
talk Events events events
about
CQRS concept
Briefly covers CQRS with read model and write model as the next pattern after sagas.
talk Events events events
about
Recommends DDD for detecting which events to store and splitting the system by domain.
talk Events events events
about
Lists Kafka as a possible event-storage backend and cites karafka for Kafka in Ruby.
talk Events events events
about
Recommended Ruby gem for event sourcing, used in production.
talk Events events events
about
Presents speaker's own gem as a lightweight event-driven transport option.
talk Events events events
about
Hanami tool
Demonstrates integrating event sourcing with Hanami actions.
talk Events events events
about
awesome-ddd resource
Cited as a source of DDD/event-sourcing implementations outside the Ruby world.
talk Events events events
about
Recommended five times during the talk as the canonical data/data-evolution reference.
Audience question during the talk's Q&A.
asked_at
Events events events talk
Audience question during the talk's Q&A.
asked_at
Events events events talk
Audience question during the talk's Q&A.
person Anton Davydov
authored
Events events events talk
Speaker of the wroclove.rb 2019 talk.
from_talk
Events events events talk
Takeaway emphasized in the closing conclusions.
from_talk
Events events events talk
Stated explicitly in the talk's conclusions.
from_talk
Events events events talk
Advising section on GDPR-style deletion strategies.
talk Events events events
presented_at
Talk given on the last day of wroclove.rb 2019 in Wrocław.
related_to
Events events events talk
Dimitry points to Anton Davydov's next-day event-sourcing talk for a deeper dive.
related_to
Events events events talk
Both are introductions to event sourcing in Ruby delivered at wroclove.rb; Pavel's is framed inside Eventide while Davydov's covered multiple Ruby options.

Provenance

Created
2026-04-17 16:17 seed
Read by
69 extractions