← 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 Nowak → authored → Might & Magic of Domain-Driven Design
context (empty) → Delivered this talk at wroclove.rb 2025.
update Might & Magic of Domain-Driven Design → presented_at → wroclove.rb 2025
context (empty) → Single-speaker talk at the 2025 edition of the conference.
create Mateusz Nowak → attended → wroclove.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 Nowak → works_at → AxonIQ
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 Nowak → uses → Axon 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 AxonIQ → works_on → Axon 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 Nowak → authored → DDD 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 Nowak → recommends → Event 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 Nowak → recommends → Decider 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 Nowak → has_skill → Domain-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 Nowak → has_skill → Event 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 Design → about → Domain-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 Design → about → Event 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 Design → about → EventStorming
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 Design → about → Event 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 Design → about → CQRS
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 Design → about → Decider 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 Design → about → Automation 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 Design → about → Vertical 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 Design → about → Saga 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 Design → about → Domain-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 Design → about → Eric 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 Design → about → Alberto 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 Design → about → Introducing 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 Design → about → Adam 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 Modeling → related_to → Adam 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 Modeling → related_to → EventStorming
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 Pattern → related_to → CQRS
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 Pattern → related_to → Event 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 Pattern → related_to → Saga 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 Slice → related_to → Event 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 Use → from_talk → Might & 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 Boundaries → from_talk → Might & 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 Execution → from_talk → Might & 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 Capability → from_talk → Might & 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 Code → from_talk → Might & 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 LLMs → from_talk → Might & 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 automations → asked_at → Might & 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_at → Might & 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 sagas → asked_at → Might & 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 automations → about → Automation 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? → about → Event 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 sagas → about → Saga 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