SZShin Zhang
Systems & perspectives

01 / Enterprise architecture · Data · AI

Complex systems,
made clear.

Architecture should make complex systems easier to reason about, not harder to explain.

Explore the patterns

Inside a pattern / CQRS

One event. Two responsibilities.
CQRS / Follow the change.
Event-backed architectureSIMULATED

Separate responsibilities

Preserve what happened. Build a separate model for the questions you need to answer.

Cart quantity / hatsRecorded: 0 / Projected: 0
No events yet. Start with a write.
Choose a state, or step through the system.
Presentation: ← → to step · Esc to exit
01 / 05
Open the interactive scene

Patterns to reason with

Index / 02 scenes
01
Compositional

Command Query
Responsibility Segregation

Separate the history you preserve from the state you need to read.

Explore CQRS
CQRS / Follow the change.
Event-backed architectureSIMULATED

Separate responsibilities

Preserve what happened. Build a separate model for the questions you need to answer.

Cart quantity / hatsRecorded: 0 / Projected: 0
No events yet. Start with a write.
Choose a state, or step through the system.
Presentation: ← → to step · Esc to exit
01 / 05
02
Event source

Database Write Through

Keep the database as your write boundary. Let committed changes travel.

Explore the pattern
Database Write Through / Follow the change.
Database-originated changeSIMULATED

The database remains the write boundary

Applications keep writing to the database. Committed changes become input to downstream systems.

Order status / order-01DB: Empty / View: Empty
No events yet. Start with a write.
Choose a state, or step through the system.
Presentation: ← → to step · Esc to exit
01 / 06

A working perspective

A useful architecture makes its boundaries, consequences and trade-offs visible.