← Extractions

Events events events — Anton Davydov on Event Sourcing in Ruby

Anton Davydov's wroclove.rb 2019 talk introducing event sourcing: storing immutable events as source of truth, replaying them into projections, using streams and snapshots, and integrating with Ruby via Ruby Event Store and his own hanami-events gem. Covers trade-offs, data evolution, sagas, CQRS, DDD, and fielded Q&A on GDPR erasure, searching, and cost.

Model
claude-opus-4-7
Ingestion
352a1835
Input tokens
354,870
fresh
252,318
cached
93,822
cache write
8,730
Output tokens
12,342
Duration
196.9s
Roundtrips
8
Tool calls
25
Cost
$0.00
Nodes/edges extracted
19 / 38
Read set (nodes/edges)
131 / 4

Nodes (19)

update Anton Davydov person
attrs (empty) → {"role" => "software developer / technical consultant", "location" => "Moscow, Russia"}
description Conference speaker. → Russian software developer from Moscow. Works at Hippo, an American startup, as an open-source developer and technica...
short_description Conference speaker. → Russian Ruby developer based in Moscow; open-source developer and event-sourcing advocate.
update Events events events talk
description Talk at wroclove.rb 2019. → Anton Davydov's wroclove.rb 2019 talk. Introduces event sourcing as a pattern of persisting what happened (immutable ...
short_description Talk at wroclove.rb 2019. → Anton Davydov's wroclove.rb 2019 talk introducing event sourcing in Ruby.
update Event Sourcing concept
description Persistence approach where business-relevant facts ('events') are appended to an immutable event store and aggregate ... → Persistence approach where business-relevant facts ('events') are appended to an immutable event store and aggregate ...
create Event Stream concept
kind (empty) → concept
name (empty) → Event Stream
slug (empty) → event-stream
attrs (empty) → {"category" => "pattern"}
description (empty) → Partitioning strategy in event sourcing where events related to a single aggregate (e.g. one order, one ice-cream bus...
short_description (empty) → Per-aggregate partition of an event log enabling scoped replay.
create Data Evolution concept
kind (empty) → concept
name (empty) → Data Evolution
slug (empty) → data-evolution
attrs (empty) → {"category" => "practice"}
description (empty) → Challenge unique to event-sourced systems: because stored events are immutable, you cannot rename or delete fields af...
short_description (empty) → Evolving immutable event schemas over time via optional fields, versions, and binary formats.
create Projection Function concept
kind (empty) → concept
name (empty) → Projection Function
slug (empty) → projection-function
attrs (empty) → {"category" => "pattern"}
description (empty) → Function taking three arguments — a reducer/block, a list of events, and an initial state — and returning new state. ...
short_description (empty) → Pure fold over an event stream producing current or derived state.
create hanami-events tool
kind (empty) → tool
name (empty) → hanami-events
slug (empty) → hanami-events
attrs (empty) → {"category" => "library"}
description (empty) → Ruby gem built by Anton Davydov providing an event-driven transport layer with pluggable adapters. Event versions and...
short_description (empty) → Anton Davydov's Ruby gem for event-driven transport in Hanami apps.
create Hippo company
kind (empty) → company
name (empty) → Hippo
slug (empty) → hippo
attrs (empty) → {"industry" => "startup"}
description (empty) → American startup. Anton Davydov works there as an open-source developer and technical consultant.
short_description (empty) → American startup where Anton Davydov works as open-source developer.
create Designing Data-Intensive Applications resource
kind (empty) → resource
name (empty) → Designing Data-Intensive Applications
slug (empty) → designing-data-intensive-applications
attrs (empty) → {"type" => "book"}
description (empty) → Book on the architecture of data-intensive systems covering storage, replication, partitioning, transactions, consist...
short_description (empty) → Martin Kleppmann's book on data systems, highly recommended for event sourcing.
create awesome-ddd resource
kind (empty) → resource
name (empty) → awesome-ddd
slug (empty) → awesome-ddd
attrs (empty) → {"type" => "repository"}
description (empty) → GitHub 'awesome' list aggregating DDD implementations and resources across languages and communities. Davydov uses it...
short_description (empty) → Curated GitHub list of Domain-Driven Design implementations and resources.
create Martin Fowler person
kind (empty) → person
name (empty) → Martin Fowler
slug (empty) → martin-fowler
description (empty) → Software author and thought leader. Referenced by Davydov as having described a 'reactive' approach to deleting user-...
short_description (empty) → Software author, referenced for reactive GDPR-deletion approach.
update Saga Pattern concept
description Pattern (also referred to as a distributed service manager / process manager) used to deal with reactor synchronizati... → Pattern (also referred to as a distributed service manager / process manager) used to deal with reactor synchronizati...
update Apache Kafka tool
description Distributed log/streaming platform that some companies use to store events (with log compaction). Pašalić doesn't rec... → Distributed log/streaming platform that some companies use to store events (with log compaction). Pašalić doesn't rec...
create Event Sourcing Is About State Not Distribution takeaway
kind (empty) → takeaway
name (empty) → Event Sourcing Is About State Not Distribution
slug (empty) → event-sourcing-is-about-state-not-distribution
attrs (empty) → {"type" => "insight"}
description (empty) → Davydov's emphasized closing point: event sourcing is not a distributed-systems pattern and is not about communicatin...
short_description (empty) → Event sourcing solves state persistence, not inter-service communication.
create Event Sourcing Is Not A Silver Bullet takeaway
kind (empty) → takeaway
name (empty) → Event Sourcing Is Not A Silver Bullet
slug (empty) → event-sourcing-is-not-a-silver-bullet
attrs (empty) → {"type" => "warning"}
description (empty) → Davydov's conclusion: event-based architecture sometimes wins and sometimes doesn't. Event sourcing is 'simple' the w...
short_description (empty) → Event-based architecture fits some systems and not others.
create Three Ways To Delete User Data In Event-Sourced Systems takeaway
kind (empty) → takeaway
name (empty) → Three Ways To Delete User Data In Event-Sourced Systems
slug (empty) → three-ways-to-delete-user-data-in-event-sourced-systems
attrs (empty) → {"type" => "recommendation"}
description (empty) → Davydov surveys three approaches to deleting user-related data from an immutable event store: (1) Martin Fowler's rea...
short_description (empty) → GDPR erasure options: reactive (Fowler), encrypt-and-lose-key, or Kafka compaction.
create How to comply with right-to-be-forgotten given future quantum computers? question
kind (empty) → question
name (empty) → How to comply with right-to-be-forgotten given future quantum computers?
slug (empty) → how-to-comply-with-right-to-be-forgotten-given-future-quantum-computers
attrs (empty) → {"answer_summary" => "Encrypt-and-lose-key may not survive quantum computing. Alternative from Polish banking/blockch...
description (empty) → Audience member cites a lawyer arguing encrypt-and-lose-key is insufficient because future quantum computers may decr...
short_description (empty) → Q&A on GDPR erasure durability against future decryption capabilities.
create How do you search across millions of events for top items? question
kind (empty) → question
name (empty) → How do you search across millions of events for top items?
slug (empty) → how-do-you-search-across-millions-of-events-for-top-items
attrs (empty) → {"answer_summary" => "Maintain a search-optimized read model (e.g. Elasticsearch) updated as events arrive; use it to...
description (empty) → Audience asks how to search for things like 'most attractive items' when state requires processing millions of events...
short_description (empty) → Q&A on searching event-sourced data efficiently.
create Is event sourcing more expensive long-term, and how to reduce cost? question
kind (empty) → question
name (empty) → Is event sourcing more expensive long-term, and how to reduce cost?
slug (empty) → is-event-sourcing-more-expensive-long-term-and-how-to-reduce-cost
attrs (empty) → {"answer_summary" => "Short-term it's more expensive; long-term it can pay off where state history matters. Reduce co...
description (empty) → Audience (a self-described event-sourcing proponent) asks whether event sourcing remains more expensive in the long r...
short_description (empty) → Q&A on long-term cost of event sourcing and how to lower it.

Edges (38)

update Anton Davydov → authored → Events events events
context (empty) → Speaker of the wroclove.rb 2019 talk.
update Events events events → presented_at → wroclove.rb 2019
context (empty) → Talk given on the last day of wroclove.rb 2019 in Wrocław.
update Anton Davydov → attended → wroclove.rb 2019
context Gave the following day's event-sourcing talk referenced by Dimitry. → Attended and spoke at wroclove.rb 2019; first time in Poland.
create Anton Davydov → works_at → Hippo
attrs (empty) → {"role" => "open-source developer / technical consultant"}
context (empty) → Works at Hippo as open-source developer and technical consultant.
relation (empty) → works_at
source_node_id (empty) → 1e0f75d3-87ae-490e-b066-1ba0f800bec7
target_node_id (empty) → 67976225-73a1-4a0f-b637-c0325bcee2c5
create Anton Davydov → works_on → hanami-events
attrs (empty) → {"role" => "author/maintainer"}
context (empty) → Built the hanami-events gem as an event-driven transport layer for Hanami.
relation (empty) → works_on
source_node_id (empty) → 1e0f75d3-87ae-490e-b066-1ba0f800bec7
target_node_id (empty) → a00d49a6-7310-47ee-a203-dd20a51a02bf
create Events events events → about → Event Sourcing
context (empty) → Core subject: introducing event sourcing to Ruby developers.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 687c9da2-de87-4fb2-a758-c7498f394fd5
create Events events events → about → Event Store
context (empty) → Explains the event store as append-only immutable persistence.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 41e612ae-2c1f-4a3c-8690-d47ac47e0174
create Events events events → about → Event Stream
context (empty) → Introduces per-aggregate streams to speed up projection.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 8c314bcf-2bbd-4b0d-b2aa-5cdc649e632d
create Events events events → about → Projection Function
context (empty) → Shows projection as a pure fold over events with initial state.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 5579c4cc-5f37-45e8-a326-d9704574ec9c
create Events events events → about → Snapshotting
context (empty) → Proposes caching computed state as a snapshot to avoid re-folding every time.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 0c37afd4-ec51-45d4-976d-ed8c6e0a7321
create Events events events → about → Data Evolution
context (empty) → Discusses evolving event schemas via optional fields, versions, and binary formats.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → f0354163-7e11-40af-9a91-df2661c0b692
create Events events events → about → Saga Pattern
context (empty) → Introduces sagas as business transactions modeled as state machines.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → b9cda322-dd18-40b0-84d9-b7e002665b86
create Events events events → about → CQRS
context (empty) → Briefly covers CQRS with read model and write model as the next pattern after sagas.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 8918002a-9def-4449-a187-e3052bf175b5
create Events events events → about → Domain-Driven Design
context (empty) → Recommends DDD for detecting which events to store and splitting the system by domain.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 6e2f88bd-e521-41a3-91d4-aeb5f8fd2486
create Events events events → about → Apache Kafka
context (empty) → Lists Kafka as a possible event-storage backend and cites karafka for Kafka in Ruby.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 1b0879e9-de0e-43d5-bdb0-401ccf75dde0
create Events events events → about → Ruby Event Store
context (empty) → Recommended Ruby gem for event sourcing, used in production.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → ba216251-e7a9-4e9d-96e1-6412234140c2
create Events events events → about → hanami-events
context (empty) → Presents speaker's own gem as a lightweight event-driven transport option.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → a00d49a6-7310-47ee-a203-dd20a51a02bf
create Events events events → about → Hanami
context (empty) → Demonstrates integrating event sourcing with Hanami actions.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 9e549b38-6071-4b4d-88ea-ca5c3d86afa7
create Events events events → about → awesome-ddd
context (empty) → Cited as a source of DDD/event-sourcing implementations outside the Ruby world.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → fb515043-4599-401a-9894-8a0616b73f0c
create Events events events → about → Designing Data-Intensive Applications
context (empty) → Recommended five times during the talk as the canonical data/data-evolution reference.
relation (empty) → about
source_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
target_node_id (empty) → 330a323f-4a93-42c6-a6a6-93a93d58f829
create Anton Davydov → recommends → Designing Data-Intensive Applications
context (empty) → Shown five times on slides and explicitly recommended for data evolution and distribution topics.
relation (empty) → recommends
source_node_id (empty) → 1e0f75d3-87ae-490e-b066-1ba0f800bec7
target_node_id (empty) → 330a323f-4a93-42c6-a6a6-93a93d58f829
create Anton Davydov → recommends → Ruby Event Store
context (empty) → Identifies it as a production-ready Ruby gem for event sourcing.
relation (empty) → recommends
source_node_id (empty) → 1e0f75d3-87ae-490e-b066-1ba0f800bec7
target_node_id (empty) → ba216251-e7a9-4e9d-96e1-6412234140c2
create Anton Davydov → recommends → awesome-ddd
context (empty) → Points audience to the awesome-ddd GitHub list for implementations and ideas.
relation (empty) → recommends
source_node_id (empty) → 1e0f75d3-87ae-490e-b066-1ba0f800bec7
target_node_id (empty) → fb515043-4599-401a-9894-8a0616b73f0c
create Anton Davydov → recommends → Domain-Driven Design
context (empty) → Suggests DDD as a way to split the system and choose which events to store.
relation (empty) → recommends
source_node_id (empty) → 1e0f75d3-87ae-490e-b066-1ba0f800bec7
target_node_id (empty) → 6e2f88bd-e521-41a3-91d4-aeb5f8fd2486
create Event Sourcing Is About State Not Distribution → from_talk → Events events events
context (empty) → Takeaway emphasized in the closing conclusions.
relation (empty) → from_talk
source_node_id (empty) → e096f2de-2b6d-4546-b600-8d227aeb3ec2
target_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
create Event Sourcing Is Not A Silver Bullet → from_talk → Events events events
context (empty) → Stated explicitly in the talk's conclusions.
relation (empty) → from_talk
source_node_id (empty) → 646140ad-e412-4ef2-8537-cbbffb187372
target_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
create Three Ways To Delete User Data In Event-Sourced Systems → from_talk → Events events events
context (empty) → Advising section on GDPR-style deletion strategies.
relation (empty) → from_talk
source_node_id (empty) → 33728cc5-b95b-47e5-b9d6-c1832bdb2116
target_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
create Event Sourcing Is About State Not Distribution → about → Event Sourcing
context (empty) → Takeaway clarifies the scope of event sourcing.
relation (empty) → about
source_node_id (empty) → e096f2de-2b6d-4546-b600-8d227aeb3ec2
target_node_id (empty) → 687c9da2-de87-4fb2-a758-c7498f394fd5
create Event Sourcing Is Not A Silver Bullet → about → Event Sourcing
context (empty) → Warning about over-application of event sourcing.
relation (empty) → about
source_node_id (empty) → 646140ad-e412-4ef2-8537-cbbffb187372
target_node_id (empty) → 687c9da2-de87-4fb2-a758-c7498f394fd5
create Three Ways To Delete User Data In Event-Sourced Systems → about → Event Sourcing
context (empty) → Approaches apply specifically to event-sourced systems.
relation (empty) → about
source_node_id (empty) → 33728cc5-b95b-47e5-b9d6-c1832bdb2116
target_node_id (empty) → 687c9da2-de87-4fb2-a758-c7498f394fd5
create Three Ways To Delete User Data In Event-Sourced Systems → about → Martin Fowler
context (empty) → Cites Martin Fowler as source of the reactive approach.
relation (empty) → about
source_node_id (empty) → 33728cc5-b95b-47e5-b9d6-c1832bdb2116
target_node_id (empty) → 33f22dea-eae4-4b70-969f-4d51b3c8924c
create How to comply with right-to-be-forgotten given future quantum computers? → asked_at → Events events events
context (empty) → Audience question during the talk's Q&A.
relation (empty) → asked_at
source_node_id (empty) → 1ceeeae7-9026-4128-b42f-7c33344e00ed
target_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
create How do you search across millions of events for top items? → asked_at → Events events events
context (empty) → Audience question during the talk's Q&A.
relation (empty) → asked_at
source_node_id (empty) → 1b893caa-7a29-4dbb-b9a2-61f7fa8085b8
target_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
create Is event sourcing more expensive long-term, and how to reduce cost? → asked_at → Events events events
context (empty) → Audience question during the talk's Q&A.
relation (empty) → asked_at
source_node_id (empty) → ed6fe3ea-82bd-4197-8470-20b219be847e
target_node_id (empty) → 43a82c04-35a9-48fe-b93a-b3ab57e5c0be
create How to comply with right-to-be-forgotten given future quantum computers? → about → Event Sourcing
context (empty) → Concerns GDPR compliance in immutable event-sourced systems.
relation (empty) → about
source_node_id (empty) → 1ceeeae7-9026-4128-b42f-7c33344e00ed
target_node_id (empty) → 687c9da2-de87-4fb2-a758-c7498f394fd5
create How do you search across millions of events for top items? → about → Snapshotting
context (empty) → Relates to using snapshots/read models for fast search across events.
relation (empty) → about
source_node_id (empty) → 1b893caa-7a29-4dbb-b9a2-61f7fa8085b8
target_node_id (empty) → 0c37afd4-ec51-45d4-976d-ed8c6e0a7321
create Is event sourcing more expensive long-term, and how to reduce cost? → about → Event Sourcing
context (empty) → Asks about the total cost of event sourcing.
relation (empty) → about
source_node_id (empty) → ed6fe3ea-82bd-4197-8470-20b219be847e
target_node_id (empty) → 687c9da2-de87-4fb2-a758-c7498f394fd5
create hanami-events → related_to → Hanami
context (empty) → Designed for the Hanami ecosystem.
relation (empty) → related_to
source_node_id (empty) → a00d49a6-7310-47ee-a203-dd20a51a02bf
target_node_id (empty) → 9e549b38-6071-4b4d-88ea-ca5c3d86afa7

Read set

131 nodes

tool Rails Event Store Event Browser search_nodes concept Event Sourcing search_nodes takeaway Event Sourcing Mind Shift Trade-off search_nodes concept Event Store search_nodes takeaway Use CQRS And Event Sourcing Independently search_nodes takeaway Hiring For Event Sourcing Trade-off search_nodes concept Snapshotting search_nodes takeaway Event Sourcing Enables Distribution search_nodes question How to migrate legacy data into an event-sourced system? search_nodes question Can you do DDD without event sourcing? search_nodes talk Event Sourcing and Actor model in Ruby search_nodes talk MVCC for Ruby developers search_nodes person Julik Tarkhanov search_nodes person Louis Antonopoulos search_nodes project Ruby Romania search_nodes person Adam Okoń search_nodes talk Scientific Ruby Lightning Talk search_nodes person Emiliano Della Casa search_nodes talk Rubyana Gems and the Ractorous Rubetta Stones! search_nodes person Nicolò Rebughini search_nodes tool TruffleRuby search_nodes event wroclove.rb 2019 search_nodes event wroclove.rb 2018 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2023 search_nodes event wroclove.rb 2026 search_nodes event wroclove.rb 2025 search_nodes talk Building LLM powered applications in Ruby search_nodes talk Towards the post framework future search_nodes talk Data Management With Ruby search_nodes tool Hanami search_nodes project monolith framework search_nodes concept Cynefin Framework search_nodes talk Extracting logic from templates with Hanami Views search_nodes tool Rack search_nodes tool Ruby on Rails search_nodes talk Building Rails SPAs in Frontend Ruby with Glimmer DSL for Web search_nodes tool Ember.js search_nodes tool Apache Kafka search_nodes concept Entity Caching and Snapshotting search_nodes question How to handle very large event volumes over time? search_nodes concept Reservation Pattern search_nodes question Do events store current state, and how does replay perform? search_nodes question What is the biggest challenge with this approach? search_nodes tool rails_event_store search_nodes tool Ruby Event Store search_nodes takeaway rails_event_store is the most productive DDD tool in Ruby search_nodes tool Entity Store search_nodes project rails_event_store/ecommerce search_nodes question Can parts of Eventide, Rails Event Store and Trailblazer be combined in one project? search_nodes project Event Store (project) search_nodes talk Applying CQRS & Event Sourcing on Rails applications search_nodes concept Domain-Driven Design search_nodes resource Implementing Domain-Driven Design search_nodes resource Domain-Driven Design: Patterns, Principles and Practices search_nodes talk Might & Magic of Domain-Driven Design search_nodes talk The pillars of Domain Driven Design search_nodes question Does DDD require object-oriented programming? search_nodes resource Domain-Driven Rails search_nodes question How to apply DDD when the client refuses to learn ubiquitous language? search_nodes takeaway Risks of DDD: Hierarchy, Perfectionism, Constraints search_nodes concept Domain Storytelling search_nodes person Martin Gamsjaeger search_nodes concept DDD Whirlpool search_nodes person Eric Evans search_nodes person Bertrand Meyer search_nodes resource Object-Oriented Software Construction search_nodes concept Developer vs Programmer search_nodes talk Development with axioms search_nodes concept Architecture Drivers search_nodes concept Distributed Monolith search_nodes takeaway Eventual Consistency Trade-off search_nodes talk Adventures in durable execution search_nodes concept CQRS search_nodes takeaway Build APIs with immutability, EDN, context-free, flat search_nodes takeaway Silver Bullet Anti-Pattern search_nodes resource Domain-Driven Design: Tackling Complexity in the Heart of Software search_nodes person Anton Davydov search_nodes+get_node_edges takeaway Name Things To Find Their Properties search_nodes tool RealtimeBoard search_nodes talk Forms Are Dead: Building Agentic Workflows in Ruby search_nodes tool actions/upload-artifact search_nodes concept GitHub Self-Hosted Runner search_nodes tool Faker search_nodes tool GraphQL search_nodes concept Event Bus search_nodes tool EventMachine search_nodes concept Rails Reload-Safe ES Configuration search_nodes concept Event Handler Error Strategy search_nodes project Eventide search_nodes concept Saga Pattern search_nodes question How is the event-write kept consistent with external operations? search_nodes question How do you order events across distributed systems? search_nodes project aggregates repository search_nodes takeaway Contribute to Arkency aggregates repository search_nodes question Is layered DDD really junior-friendly? search_nodes question Is building DDD from scratch too slow for the business? search_nodes question How to do DDD remotely? search_nodes question Does DDD apply to startups? search_nodes talk Securing Rails applications search_nodes concept Vector Clock search_nodes concept Offline-First search_nodes company Transloadit search_nodes takeaway Buy Faster Hardware search_nodes company SpaceX search_nodes concept Logux Proxy search_nodes concept Direct Upload to Cloud search_nodes tool knapsack_pro search_nodes tool webpagetest.org search_nodes talk Events events events search_nodes+get_node_edges talk Offline Sandwich Focus Workflow search_nodes concept Command UUID Deduplication search_nodes takeaway Time Travel Superpower search_nodes talk Fantastic Databases and Where to Find Them search_nodes concept View-Biased Event Schemas search_nodes question How does GDPR deletion work if encrypted events are in backups? search_nodes concept Unique Per-Site Email Leak Detection search_nodes question How do you deal with GDPR in an immutable event store? search_nodes takeaway Use Unique Per-Site Emails To Catch Leaks search_nodes concept Breadth-First Search for Code Removal search_nodes talk Multi-region data governance in Rails application search_nodes talk Removing Code with Breadth-First Search search_nodes concept Entity Projection search_nodes takeaway Replay-Based Debugging search_nodes concept Idempotent Projectors and Reactors search_nodes resource Introducing EventStorming search_nodes question Cross-tenant aggregation with row-level multi-tenancy search_nodes person Andrzej Krzywda search_nodes company Arkency search_nodes question Where do you read from without event sourcing? search_nodes

4 edges