changedatacapture.net

EDA Flow Decision Matrix Interactive Suite

EDA Decision Matrix Tool - Event-Driven Architecture

Answer four questions about your system flow to get a concrete recommendation: synchronous API, event choreography, or orchestration.

System Flow Parameter Configuration

Define your system flow mechanics to run the structural analysis matrix.




Analysis Result

Recommended Architecture Pattern

Synchronous API / Read Model

Direct request-response model is chosen because the system demands an immediate answer to a present-state inquiry.

Topology Data Path Flow
* Based on architectural evaluation criteria mapping mechanisms to domain complexity trade-offs.

Pattern Reference

Key concepts, reliability patterns, and common anti-patterns for event-driven systems.

Events, Commands, and Queries

Temporal State: Past

Events (Fact)

A historical description of a state change that has fully completed within a domain ecosystem. Events are immutable data realities.

Example: CustomerRegistered, OrderPlaced
Temporal State: Future

Commands (Intent)

An explicit invocation requesting a mutation of system state. Commands point forward in time and can be rejected by the validation context.

Example: ReserveInventory, AuthorizePayment
Temporal State: Present

Queries (Knowledge)

An immediate request for the current runtime projection of truth. Queries do not alter data structures and demand fast execution speeds.

Example: GetCustomerProfile, CalculatePrice

Essential Architecture Practices

Transactional Outbox Pattern

Protects atomicity by writing state mutations and corresponding event payloads into a unified database transaction block, preventing data-message divergence.

Consumer Idempotency Guard

Each consumer tracks which events it has already processed, so duplicate deliveries don't cause unintended side-effects.

Anti-Pattern: Distributed Monolith

Happens when you use async messaging but services still depend on each other's execution order, payload shape, or timing — effectively a monolith in disguise.

Anti-Pattern: Hidden Commands

Calling something an event (like OrderCreated) while actually expecting a specific downstream service to react in a fixed sequence. The coupling is hidden, not removed.

Example Scenarios

Select a scenario to load a typical set of parameters into the Flow Analyzer.

Related tools

Part of: Event-Driven Architecture