Cohesive Systems logoCOHESIVE SYSTEMS
Knowledge GraphArchitecture Practices

Realm

Architecture Practices

Named practices interpreted as cross-realm bundles of problems, constraints, and realization choices.

Entries

Actor Model

The actor model addresses the problem of organizing concurrent computation around isolated, addressable participants that communicate by message passing.

Anti-Corruption Layer

An anti-corruption layer addresses the problem of integrating with another model without letting that model's semantics leak into the local boundary.

Architecture Practices

Architecture practices are named bundles of modeling choices, constraints, and implementation habits that address recurring system-engineering problems.

Clean Architecture

Clean Architecture addresses the problem of dependency direction: keeping high-value semantic rules from depending on volatile delivery, persistence, framework, and infrastructure choices.

CQRS as Architecture Practice

CQRS is often described as an architectural pattern or style. In the Cohesive System Model, the technical mechanics are captured by CQRS as a realization substrate pattern.

CRDTs as Architecture Practice

CRDTs are a distributed-systems practice for designing replicated state that can accept concurrent updates and converge without synchronous coordination for every update.

Data Mesh

Data Mesh addresses the problem of scaling analytical and operational data ownership across organizational and domain boundaries.

Domain-Driven Design

Domain-Driven Design, or DDD, addresses the problem of preserving domain meaning in software as systems grow in complexity.

Event Sourcing as Architecture Practice

Event sourcing is often described as an architecture practice. In the Cohesive System Model, the technical mechanics are captured by event sourcing as a realization substrate pattern.

Event-Driven Architecture

Event-Driven Architecture addresses the problem of coordinating independent participants through event flow rather than direct synchronous control.

Microservices

Microservices address the problem of independent ownership, deployment, scaling, and evolution across bounded capabilities.

Modular Monolith

The modular monolith addresses the problem of maintaining strong internal boundaries and cohesive change units without paying the operational cost of distributed deployment.

Ports and Adapters

Ports and Adapters addresses the problem of keeping domain and application semantics independent from specific infrastructure, protocols, user interfaces, and external systems.

Sagas and Process Managers

Sagas and process managers address the problem of coordinating long-running, multi-step work across boundaries where one atomic transaction is unavailable or inappropriate.

Transactional Inbox

The transactional inbox addresses the consumer-side problem of processing a delivered input exactly once in domain meaning when the delivery substrate may redeliver it.

Transactional Outbox

The transactional outbox addresses the problem of committing local state change and publishing a message without relying on a distributed transaction between the database and broker.

Weak Isolation Patterns as Architecture Practice

Weak isolation patterns are architecture practices for preserving useful correctness when one ACID transaction or two-phase commit boundary is unavailable, too expensive, or misaligned with the domain process.