← Extractions

Might & Magic of Domain-Driven Design — Mateusz Nowak at wroclove.rb 2025

Mateusz Nowak's wroclove.rb 2025 talk uses Heroes of Might & Magic III as a running analogy to present an application design process built on Domain-Driven Design, EventStorming, Event Modeling, and the decider/automation patterns. He argues that battles for software quality are won during whiteboard planning and modeling experiments — making code review a formality and enabling modular systems where developers become real business partners.

Model
claude-opus-4-7
Ingestion
02f504a3
Input tokens
172,281
fresh
84,936
cached
73,965
cache write
13,380
Output tokens
10,977
Duration
169.0s
Roundtrips
5
Tool calls
14
Cost
$0.00
Nodes/edges extracted
19 / 43
Read set (nodes/edges)
87 / 2

Nodes (19)

update Mateusz Nowak person
attrs (empty) {"blog" => "DDD Heroes (English) + Polish blog", "location" => "Poland (Wrocław area)", "experience_years" => "8"}
description Conference speaker. Polish developer and technical leader from Bratislava-area / Wrocław region with eight years of industry experience a...
short_description Conference speaker. Backend/full-stack developer and speaker working on event sourcing with AxonIQ.
create Vertical Slice concept
kind (empty) concept
name (empty) Vertical Slice
slug (empty) vertical-slice
attrs (empty) {"category" => "practice"}
description (empty) Vertical division of an Event Model into independently implementable units. Three slice types: write slice (command t...
short_description (empty) Unit of work in Event Modeling: write, read, or automation slice bounded by events.
create DDD Heroes Blog resource
kind (empty) resource
name (empty) DDD Heroes Blog
slug (empty) ddd-heroes-blog
attrs (empty) {"type" => "blog-post", "author" => "Mateusz Nowak"}
description (empty) English-language blog authored by Mateusz Nowak covering DDD, Event Modeling, event sourcing, the decider pattern and...
short_description (empty) Mateusz Nowak's English blog about DDD, Event Modeling and event sourcing.
update Might & Magic of Domain-Driven Design talk
attrs {"type" => "talk"} {"date" => "2025-03-14", "type" => "talk", "code_language" => "Ruby", "example_domain" => "Heroes of Might and Magic ...
description Talk at wroclove.rb 2025. Mateusz Nowak's wroclove.rb 2025 single-speaker talk. Frames DDD as 'might' (patterns/heuristics learned from books a...
short_description Talk at wroclove.rb 2025. Mateusz Nowak's wroclove.rb 2025 talk on DDD, Event Modeling, and modular design via a Heroes 3 example.
create AxonIQ company
kind (empty) company
name (empty) AxonIQ
slug (empty) axoniq
attrs (empty) {"industry" => "event sourcing frameworks / software"}
description (empty) Company responsible for the Axon Framework. Its mission, as described by Mateusz Nowak (contractor at AxonIQ), is to ...
short_description (empty) Company behind Axon Framework; mission to make event sourcing easy in the Java world.
create Axon Framework tool
kind (empty) tool
name (empty) Axon Framework
slug (empty) axon-framework
attrs (empty) {"category" => "framework", "language" => "Java"}
description (empty) Framework for event sourcing maintained by AxonIQ. Used daily by Mateusz Nowak in his client work alongside DDD, Even...
short_description (empty) Java framework for event sourcing, CQRS and DDD built by AxonIQ.
create Event Modeling concept
kind (empty) concept
name (empty) Event Modeling
slug (empty) event-modeling
attrs (empty) {"category" => "practice", "coined_at" => "EventStorming Summit 2018", "coined_by" => "Adam Dymitruk", "former_name" ...
description (empty) Modeling technique coined by Adam Dymitruk in 2018 at the EventStorming Summit, originally called 'single flow event ...
short_description (empty) Modeling technique that describes business processes as sequenced frames of commands, events and views.
create Adam Dymitruk person
kind (empty) person
name (empty) Adam Dymitruk
slug (empty) adam-dymitruk
description (empty) Coined Event Modeling in 2018 at the EventStorming Summit. Initially called his method 'single flow event storming'.
short_description (empty) Originator of Event Modeling (2018).
create Decider Pattern concept
kind (empty) concept
name (empty) Decider Pattern
slug (empty) decider-pattern
attrs (empty) {"category" => "pattern"}
description (empty) Functional domain-logic pattern Mateusz Nowak uses to implement Event-Modeled systems. Three pure functions compose t...
short_description (empty) Persistence-agnostic functional pattern with decide, evolve and react pure functions.
create Automation Pattern concept
kind (empty) concept
name (empty) Automation Pattern
slug (empty) automation-pattern
attrs (empty) {"category" => "pattern"}
description (empty) Event Modeling building block (the 'automation slice') that acts as a process orchestrator between autonomous modules...
short_description (empty) Event Modeling building block: a robot that reacts to events by dispatching commands across modules.
create Model Domain By Reverse-Engineering Apps You Use takeaway
kind (empty) takeaway
name (empty) Model Domain By Reverse-Engineering Apps You Use
slug (empty) model-domain-by-reverse-engineering-apps-you-use
attrs (empty) {"type" => "recommendation"}
description (empty) Practical exercise to gain DDD experience when you don't have an Eric Evans at work. Step 1: model a domain you use d...
short_description (empty) Train DDD intuition by modeling Uber/e-commerce domains and their new features.
create Use Whiteboard Experiments To Find Module Boundaries takeaway
kind (empty) takeaway
name (empty) Use Whiteboard Experiments To Find Module Boundaries
slug (empty) use-whiteboard-experiments-to-find-module-boundaries
attrs (empty) {"type" => "insight"}
description (empty) Heuristic presented in the talk: to verify whether a set of events belongs to one module, ask 'what happens after thi...
short_description (empty) Ask what happened before/after each event to discover autonomous module boundaries.
create Replace Code Review With Architecture Execution takeaway
kind (empty) takeaway
name (empty) Replace Code Review With Architecture Execution
slug (empty) replace-code-review-with-architecture-execution
attrs (empty) {"type" => "recommendation"}
description (empty) Mateusz Nowak's provocative proposal: replace mandatory code review with an 'architecture review' during planning (wh...
short_description (empty) Fight for quality at planning time; make code review a formality by executing a pre-agreed architecture.
create Modularity As Business Capability takeaway
kind (empty) takeaway
name (empty) Modularity As Business Capability
slug (empty) modularity-as-business-capability
attrs (empty) {"type" => "insight"}
description (empty) Argument from the talk: splitting applications into autonomous modules is not just developer fun — it maps to busines...
short_description (empty) Well-modularized systems expose business capabilities that can be recombined into new products or paid extensions.
create Developer's Understanding Translates Into Code takeaway
kind (empty) takeaway
name (empty) Developer's Understanding Translates Into Code
slug (empty) developer-s-understanding-translates-into-code
attrs (empty) {"type" => "insight"}
description (empty) Closing thought of the talk (a quote Nowak cites). It is not the expert's knowledge that is translated into code but ...
short_description (empty) It is not the expert's knowledge but the developer's understanding that ends up in the code.
create Delegate Event-Model-To-Test Translation To LLMs takeaway
kind (empty) takeaway
name (empty) Delegate Event-Model-To-Test Translation To LLMs
slug (empty) delegate-event-model-to-test-translation-to-llms
attrs (empty) {"type" => "recommendation"}
description (empty) Because Event Modeling specifications already carry given/when/then semantics, translating them into test code is mec...
short_description (empty) Translating given/when/then specifications to tests is boring and ideal work for juniors or LLMs.
create Internal state in automations question
kind (empty) question
name (empty) Internal state in automations
slug (empty) internal-state-in-automations
attrs (empty) {"answer_summary" => "Yes — in real processes automations need internal state; even the simplest one at least tracks ...
description (empty) Audience member notes that on the Event Modeling diagram the read-model view had an arrow into the automation, and as...
short_description (empty) Does the read-model arrow into an automation mean the automation has internal state?
create Where do calculations live in read models? question
kind (empty) question
name (empty) Where do calculations live in read models?
slug (empty) where-do-calculations-live-in-read-models
attrs (empty) {"answer_summary" => "Specified by given/when/then examples per view; implementation-wise Nowak repeats the calculati...
description (empty) Audience asks where calculations (e.g. adding a product to a cart and computing the total) are expressed in Event Mod...
short_description (empty) In Event Modeling, where do derived calculations like cart totals belong when multiple read models need them?
create Long-running automations and sagas question
kind (empty) question
name (empty) Long-running automations and sagas
slug (empty) long-running-automations-and-sagas
attrs (empty) {"answer_summary" => "Introduce a saga that consumes multiple events (optionally artificial intermediate ones) and re...
description (empty) Audience asks who executes commands when an automation is long-running and must wait for multiple events before actin...
short_description (empty) How do long-running automations that require multiple events get executed?

Edges (43)

update Mateusz NowakauthoredMight & Magic of Domain-Driven Design
context (empty) Delivered this talk at wroclove.rb 2025.
update Might & Magic of Domain-Driven Designpresented_atwroclove.rb 2025
context (empty) Single-speaker talk at the 2025 edition of the conference.
create Mateusz Nowakattendedwroclove.rb 2025
context (empty) Travelled from Poland to speak at wroclove.rb 2025.
relation (empty) attended
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) 4a9688cf-482e-48ac-a0b5-de88900bdb2b
create Mateusz Nowakworks_atAxonIQ
attrs (empty) {"role" => "contractor / developer"}
context (empty) Contractor at AxonIQ working daily on DDD / event sourcing projects.
relation (empty) works_at
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) 741e3afd-7d5f-40f7-8695-ea4138052a6f
create Mateusz NowakusesAxon Framework
context (empty) Uses Axon Framework daily in client work.
relation (empty) uses
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) f229bdd4-7cc4-4dff-b8d2-cdd6634ac030
create AxonIQworks_onAxon Framework
context (empty) AxonIQ develops and maintains the Axon Framework; its mission is to make event sourcing easy in the Java world.
relation (empty) works_on
source_node_id (empty) 741e3afd-7d5f-40f7-8695-ea4138052a6f
target_node_id (empty) f229bdd4-7cc4-4dff-b8d2-cdd6634ac030
create Mateusz NowakauthoredDDD Heroes Blog
context (empty) Author of the DDD Heroes English blog and a companion Polish blog.
relation (empty) authored
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) 3810584b-e993-41a1-abb3-5bb25b82315d
create Mateusz NowakrecommendsEvent Modeling
context (empty) Prefers Event Modeling over process-level and design-level EventStorming.
relation (empty) recommends
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) b9d78e83-eee7-4ef3-9ec5-735739c3897a
create Mateusz NowakrecommendsDecider Pattern
context (empty) Recommends the decider pattern (decide/evolve/react) for persistence-agnostic domain logic.
relation (empty) recommends
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) 257ebe97-c2d6-4102-8515-744da7253cce
create Mateusz Nowakhas_skillDomain-Driven Design
attrs (empty) {"level" => "expert"}
context (empty) Eight years of applying DDD, EventStorming and Event Modeling in commercial projects.
relation (empty) has_skill
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) 6e2f88bd-e521-41a3-91d4-aeb5f8fd2486
create Mateusz Nowakhas_skillEvent Sourcing
attrs (empty) {"level" => "expert"}
context (empty) Daily work on event sourcing via Axon Framework; preferred persistence approach.
relation (empty) has_skill
source_node_id (empty) 352695d4-97a3-49bb-ae17-93bd6701a95f
target_node_id (empty) 687c9da2-de87-4fb2-a758-c7498f394fd5
create Might & Magic of Domain-Driven DesignaboutDomain-Driven Design
context (empty) Central subject of the talk — DDD process and mindset shift.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 6e2f88bd-e521-41a3-91d4-aeb5f8fd2486
create Might & Magic of Domain-Driven DesignaboutEvent Modeling
context (empty) Uses Event Modeling as the core modeling notation and process.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) b9d78e83-eee7-4ef3-9ec5-735739c3897a
create Might & Magic of Domain-Driven DesignaboutEventStorming
context (empty) Starts the design process with EventStorming big-picture and process-level sessions.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) f531d860-d7e6-449c-8289-ffa29995f7d1
create Might & Magic of Domain-Driven DesignaboutEvent Sourcing
context (empty) Shows event sourcing composition of decide/evolve and the alternative snapshot storage.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 687c9da2-de87-4fb2-a758-c7498f394fd5
create Might & Magic of Domain-Driven DesignaboutCQRS
context (empty) Slicing write and read sides relies on CQRS for independent development.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 8918002a-9def-4449-a187-e3052bf175b5
create Might & Magic of Domain-Driven DesignaboutDecider Pattern
context (empty) Implements domain logic with the decide/evolve/react decider functions.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 257ebe97-c2d6-4102-8515-744da7253cce
create Might & Magic of Domain-Driven DesignaboutAutomation Pattern
context (empty) Introduces the automation pattern as the glue between autonomous modules.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) bfcecf38-9528-4a8e-8ed7-1fd7ceb0f06c
create Might & Magic of Domain-Driven DesignaboutVertical Slice
context (empty) Splits team work along write, read and automation vertical slices.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 8bd2f474-4ab1-40f5-b650-5ee3885ac734
create Might & Magic of Domain-Driven DesignaboutSaga Pattern
context (empty) Mentions sagas as the standard way to implement long-running automations that consume multiple events.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) b9cda322-dd18-40b0-84d9-b7e002665b86
create Might & Magic of Domain-Driven DesignaboutDomain-Driven Design: Tackling Complexity in the Heart of Software
context (empty) Opens by citing Eric Evans' blue book — first shown to the speaker during studies as a game changer.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 48659931-177d-43aa-a529-8bde7532565a
create Might & Magic of Domain-Driven DesignaboutEric Evans
context (empty) Credits Eric Evans as the author of the blue book that began his DDD journey.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 7361f3c1-0565-4aed-9cb6-a152905b7615
create Might & Magic of Domain-Driven DesignaboutAlberto Brandolini
context (empty) Credits Brandolini as author of EventStorming and its canonical book.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) bdbfabf7-feeb-4cfe-a40d-191dca70e0ec
create Might & Magic of Domain-Driven DesignaboutIntroducing EventStorming
context (empty) Recommends Brandolini's book as reference for the EventStorming step.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 3eba1d1d-8917-4a38-91c1-77dad0f41209
create Might & Magic of Domain-Driven DesignaboutAdam Dymitruk
context (empty) Credits Adam Dymitruk with coining Event Modeling in 2018.
relation (empty) about
source_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
target_node_id (empty) 7be1de90-ff89-41f3-a2bc-35693b496bf3
create Event Modelingrelated_toAdam Dymitruk
context (empty) Event Modeling was coined by Adam Dymitruk at the EventStorming Summit 2018, originally as 'single flow event storming'.
relation (empty) related_to
source_node_id (empty) b9d78e83-eee7-4ef3-9ec5-735739c3897a
target_node_id (empty) 7be1de90-ff89-41f3-a2bc-35693b496bf3
create Event Modelingrelated_toEventStorming
context (empty) Event Modeling evolved from EventStorming and shares the event-first vocabulary.
relation (empty) related_to
source_node_id (empty) b9d78e83-eee7-4ef3-9ec5-735739c3897a
target_node_id (empty) f531d860-d7e6-449c-8289-ffa29995f7d1
create Decider Patternrelated_toCQRS
context (empty) Decider composition naturally implements CQRS with command-side decide and query-side evolve.
relation (empty) related_to
source_node_id (empty) 257ebe97-c2d6-4102-8515-744da7253cce
target_node_id (empty) 8918002a-9def-4449-a187-e3052bf175b5
create Decider Patternrelated_toEvent Sourcing
context (empty) With events→evolve→state→decide→events the decider pattern yields an event-sourced implementation.
relation (empty) related_to
source_node_id (empty) 257ebe97-c2d6-4102-8515-744da7253cce
target_node_id (empty) 687c9da2-de87-4fb2-a758-c7498f394fd5
create Automation Patternrelated_toSaga Pattern
context (empty) Stateful long-running automations are typically implemented as sagas.
relation (empty) related_to
source_node_id (empty) bfcecf38-9528-4a8e-8ed7-1fd7ceb0f06c
target_node_id (empty) b9cda322-dd18-40b0-84d9-b7e002665b86
create Vertical Slicerelated_toEvent Modeling
context (empty) Event Models are split vertically into write, read and automation slices for parallel team work.
relation (empty) related_to
source_node_id (empty) 8bd2f474-4ab1-40f5-b650-5ee3885ac734
target_node_id (empty) b9d78e83-eee7-4ef3-9ec5-735739c3897a
create Model Domain By Reverse-Engineering Apps You Usefrom_talkMight & Magic of Domain-Driven Design
context (empty) Recommendation given in the talk to build DDD intuition by modeling Uber and reacting to new features like Uber shipp...
relation (empty) from_talk
source_node_id (empty) 900f420e-5639-4e5e-a5f1-0cad48cd6873
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Use Whiteboard Experiments To Find Module Boundariesfrom_talkMight & Magic of Domain-Driven Design
context (empty) Heuristic from the talk: ask what happens before/after an event to reveal module boundaries.
relation (empty) from_talk
source_node_id (empty) d5874315-3b6f-4073-936d-bf5da156b953
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Replace Code Review With Architecture Executionfrom_talkMight & Magic of Domain-Driven Design
context (empty) Closing proposal of the talk — shift quality work to planning and make code review a formality.
relation (empty) from_talk
source_node_id (empty) 2ab79662-3132-4072-97d4-c85050df9c9a
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Modularity As Business Capabilityfrom_talkMight & Magic of Domain-Driven Design
context (empty) Argument made via the Heroes 5 duel-mode extension example — modularity enables new paid products.
relation (empty) from_talk
source_node_id (empty) 64ceacdf-741f-4fdc-b2a9-a6ec5930eeb5
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Developer's Understanding Translates Into Codefrom_talkMight & Magic of Domain-Driven Design
context (empty) Closing quote and thought that the talk leaves the audience with.
relation (empty) from_talk
source_node_id (empty) b4eac355-fac3-4cb2-a72a-6f4e8d100870
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Delegate Event-Model-To-Test Translation To LLMsfrom_talkMight & Magic of Domain-Driven Design
context (empty) Mentioned while showing Ruby test skeletons generated from given/when/then specs.
relation (empty) from_talk
source_node_id (empty) 0df7f5bc-851d-47fc-843c-ed42ae1df736
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Internal state in automationsasked_atMight & Magic of Domain-Driven Design
context (empty) First audience question during Q&A.
relation (empty) asked_at
source_node_id (empty) 4537f54b-97a0-4c26-b6fe-b5586c0c5baa
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Where do calculations live in read models?asked_atMight & Magic of Domain-Driven Design
context (empty) Audience Q&A question about cart-total-style calculations.
relation (empty) asked_at
source_node_id (empty) 64195d2b-729f-414a-998e-1b0e8c8c6b64
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Long-running automations and sagasasked_atMight & Magic of Domain-Driven Design
context (empty) Audience Q&A question about executing long-running automations.
relation (empty) asked_at
source_node_id (empty) ff45c9fc-4513-4569-b15d-9a42689bed56
target_node_id (empty) 402e6f0c-28a0-424f-b8d5-3a5d483a54c1
create Internal state in automationsaboutAutomation Pattern
context (empty) Asks how state is carried inside automations.
relation (empty) about
source_node_id (empty) 4537f54b-97a0-4c26-b6fe-b5586c0c5baa
target_node_id (empty) bfcecf38-9528-4a8e-8ed7-1fd7ceb0f06c
create Where do calculations live in read models?aboutEvent Modeling
context (empty) Asks how calculations are expressed in Event Modeling terminology.
relation (empty) about
source_node_id (empty) 64195d2b-729f-414a-998e-1b0e8c8c6b64
target_node_id (empty) b9d78e83-eee7-4ef3-9ec5-735739c3897a
create Long-running automations and sagasaboutSaga Pattern
context (empty) Answer introduces sagas for multi-event automations.
relation (empty) about
source_node_id (empty) ff45c9fc-4513-4569-b15d-9a42689bed56
target_node_id (empty) b9cda322-dd18-40b0-84d9-b7e002665b86

Read set

87 nodes

talk Strategic Domain Event Design Lightning Talk search_nodes concept EventStorming search_nodes concept Domain-Driven Design search_nodes resource Implementing Domain-Driven Design search_nodes concept Embrace The Evented Model search_nodes talk Might & Magic of Domain-Driven Design search_nodes+get_node_edges talk The pillars of Domain Driven Design search_nodes question Convincing Developers to Participate in EventStorming search_nodes concept Domain as Function from Commands to Events search_nodes resource Domain-Driven Rails search_nodes person Mateusz Nowak search_nodes+get_node_edges person Adam Okoń search_nodes company Planuj Wesele search_nodes concept AI Agent search_nodes takeaway Name Things To Find Their Properties search_nodes concept xkcd Dependency / Nebraska Problem search_nodes concept GitHub Self-Hosted Runner search_nodes tool left-pad search_nodes tool langchainrb search_nodes concept Retrieval Augmented Generation search_nodes event wroclove.rb 2023 search_nodes event wroclove.rb 2019 search_nodes event wroclove.rb 2018 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2025 search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2026 search_nodes talk Performance Panel wroclove.rb 2024 search_nodes talk Building LLM powered applications in Ruby search_nodes talk How wroclove.rb impacts developers and companies search_nodes concept Event Sourcing search_nodes takeaway Don't be afraid of event sourcing search_nodes concept Snapshotting search_nodes talk Scaling an Open Source E-Commerce Framework search_nodes concept Event Store search_nodes takeaway Adopt event sourcing gradually search_nodes takeaway Hiring For Event Sourcing Trade-off search_nodes question What is the biggest challenge with this approach? search_nodes question Can you do DDD without event sourcing? search_nodes takeaway Event Sourcing Is Not A Silver Bullet search_nodes concept Saga Pattern search_nodes concept CQRS search_nodes takeaway Use CQRS And Event Sourcing Independently search_nodes takeaway Handlers Must Control Their Dependencies search_nodes question Can Trailblazer be combined with event sourcing and CQRS? search_nodes question Where do you read from without event sourcing? search_nodes concept Entity Coupled To Messaging search_nodes concept Event-Driven CRUD Hybrid search_nodes question How to persist commands in an event-sourced system? search_nodes concept Remote EventStorming Split-Merge Structure search_nodes talk Events events events search_nodes project Petri Nets Performance Prediction Gem search_nodes concept Domain Storytelling search_nodes question Avoiding model duplication across engines search_nodes question How do you search across millions of events for top items? search_nodes question How to do DDD remotely? search_nodes person Alberto Brandolini search_nodes resource Introducing EventStorming search_nodes takeaway Stickies Translate Directly To Code search_nodes question Asynchronous EventStorming Experience search_nodes person Eric Evans search_nodes resource Domain-Driven Design: Patterns, Principles and Practices search_nodes resource Domain-Driven Design: Tackling Complexity in the Heart of Software search_nodes concept DDD Whirlpool search_nodes takeaway Risks of DDD: Hierarchy, Perfectionism, Constraints search_nodes concept Domain Service search_nodes question Does DDD require object-oriented programming? search_nodes resource Patterns of Enterprise Application Architecture search_nodes concept Cynefin Framework search_nodes talk Development with axioms search_nodes company SpaceX search_nodes tool Apollo GraphQL search_nodes tool Apollo GraphQL Platform search_nodes concept Logux Proxy search_nodes concept MCP Server search_nodes concept View-Biased Event Schemas search_nodes concept State Machine search_nodes takeaway Chess as a Hobby for Programmers search_nodes concept Aggregate Root Anti-Pattern search_nodes takeaway DDD Is More Than Aggregates search_nodes tool aggregate_root search_nodes concept Polymorphic Aggregate search_nodes concept Aggregate Root search_nodes takeaway Aggregates Should Not Emit Events search_nodes takeaway Contribute to Arkency aggregates repository search_nodes concept Aggregator search_nodes question Is building DDD from scratch too slow for the business? search_nodes

2 edges