Domäne
Architecture & System Design
Skill-Profil
Command Query Responsibility Segregation: read/write models, eventual consistency
Rollen
10
wo dieser Skill vorkommt
Stufen
5
strukturierter Entwicklungspfad
Pflichtanforderungen
29
die anderen 19 optional
Architecture & System Design
Event-Driven Architecture
17.3.2026
Wählen Sie Ihr aktuelles Level und vergleichen Sie die Erwartungen.
Die Tabelle zeigt, wie die Tiefe von Junior bis Principal wächst.
| Rolle | Pflicht | Beschreibung |
|---|---|---|
| Backend Developer (C#/.NET) | Understands CQRS in .NET ecosystem: knows MediatR for command/query separation, distinguishes IRequest and INotification. Can add a new query handler using existing project patterns. | |
| Backend Developer (Elixir) | Understands CQRS in Elixir: knows Commanded framework, understands how GenServer and Elixir's process model naturally support CQRS. Can work with an existing Commanded-based project, adding simple command handlers. | |
| Backend Developer (Go) | Understands the CQRS principle and its implementation in Go: knows how to structure code with separated command and query handlers, uses different structs for reads and writes. Can add a new query handler following existing patterns. | |
| Backend Developer (Java/Kotlin) | Understands CQRS in Java/Spring context: knows the concept of separating Command and Query models, distinguishes CommandHandler and QueryHandler. Can work with Axon Framework or Spring CQRS template projects at a basic change level. | |
| Backend Developer (Node.js) | Understands CQRS in Node.js context: knows how to separate read and write endpoints, understands command/query handlers pattern. Can work with NestJS CQRS module at simple command and query handler level. | |
| Backend Developer (PHP) | Understands CQRS principles in PHP: knows the difference between command and query operations, can work with projects using command bus (Tactician, Symfony Messenger). Understands why read and write operations are separated. | |
| Backend Developer (Python) | Understands the concept of separating read and write models: knows why CQRS is needed, difference between command and query. Can work with codebases where read and write models are separated, make simple changes to existing handlers. | |
| Backend Developer (Rust) | Understands CQRS in the Rust context: knows how the trait system enables clear separation of command and query interfaces. Can implement a simple command/query handler using enum dispatch and trait objects. | |
| Backend Developer (Scala) | Understands CQRS in Scala ecosystem: knows Akka Persistence for event sourcing, distinguishes Command and Event in typed actor model. Can work with existing Akka-based CQRS code at the level of simple changes. |
| Rolle | Pflicht | Beschreibung |
|---|---|---|
| Backend Developer (C#/.NET) | Pflicht | Implements CQRS in .NET projects: uses MediatR with FluentValidation for command validation, creates separate Dapper-based read repositories from EF Core write repositories, configures pipeline behaviors for cross-cutting concerns. Applies Clean Architecture with CQRS. |
| Backend Developer (Elixir) | Pflicht | Implements CQRS in Elixir: uses Commanded for aggregates and process managers, configures EventStore for event persistence, creates read projections through Commanded.Projections.Ecto. Applies Elixir pattern matching for event handling and validation. |
| Backend Developer (Go) | Pflicht | Implements CQRS in Go projects: creates separate packages for commands and queries, uses interface-based dispatch for command/query bus, designs read-optimized structures (denormalized views) separate from write models. Applies Go channels for internal event propagation between models. |
| Backend Developer (Java/Kotlin) | Pflicht | Implements CQRS in Java projects: uses Axon Framework for command/query separation, configures event handlers for read model updates, applies Spring Data for read-optimized repositories. Configures sagas for distributed command coordination. |
| Backend Developer (Node.js) | Pflicht | Implements CQRS in Node.js projects: uses NestJS CQRS or custom implementation with TypeScript, creates separate read models via Prisma/TypeORM, configures event handlers for synchronization. Applies Repository pattern with different implementations for command and query sides. |
| Backend Developer (PHP) | Pflicht | Implements CQRS in PHP projects: uses Symfony Messenger or Ecotone for command/query bus, creates separate Doctrine read models (QueryBuilder + DTO) from write models (Entity + Repository). Configures event handlers for read model synchronization. |
| Backend Developer (Python) | Pflicht | Implements CQRS in Python projects: separates command and query handlers via mediatr-like libraries, designs separate read models (denormalized view tables or materialized views). Ensures eventual consistency between write and read sides. |
| Backend Developer (Rust) | Pflicht | Implements CQRS in Rust projects: creates separate command and query modules with typed handlers, uses sqlx/SeaORM for different read/write models, applies tokio channels for event propagation. Ensures compile-time guarantees through generic constraints on command/query types. |
| Backend Developer (Scala) | Pflicht | Implements CQRS in Scala: uses Akka Typed Persistence for event sourced aggregates, configures Akka Projection for read models, applies ZIO + Tapir for typed command/query API. Implements domain events with sealed trait hierarchies for exhaustive matching. |
| Rolle | Pflicht | Beschreibung |
|---|---|---|
| Backend Developer (C#/.NET) | Pflicht | Designs CQRS architecture for .NET microservices: integrates with Marten or EventStoreDB for event sourcing, implements projections via subscription processors, configures different read stores (SQL Server for reports, Redis for real-time). Ensures testability via ArchUnit tests for CQRS boundaries. |
| Backend Developer (Elixir) | Pflicht | Designs CQRS architecture for Elixir systems: configures multiple read models through Commanded projections, implements event upcasting for schema evolution, optimizes aggregate loading through snapshot strategy. Integrates CQRS with Phoenix LiveView for real-time updates. |
| Backend Developer (Go) | Pflicht | Designs CQRS architecture for Go microservices: implements event-driven projections via Watermill or custom event bus, configures async projection rebuilds with checkpoint tracking, ensures projection idempotency. Optimizes read models for specific query patterns with materialized views. |
| Backend Developer (Java/Kotlin) | Pflicht | Designs CQRS architecture for Java microservices: chooses between Axon Framework and Eventuate, implements event sourcing with snapshot optimization, configures parallel projections for different read stores (PostgreSQL, Elasticsearch, Redis). Ensures consistency via idempotent event handlers. |
| Backend Developer (Node.js) | Pflicht | Designs CQRS architecture for Node.js: integrates with EventStoreDB or custom event store, implements projection rebuilds via event replay, configures multiple read stores for different query patterns. Ensures type safety via TypeScript generics for command/query/event types. |
| Backend Developer (PHP) | Pflicht | Designs CQRS for PHP systems: implements Ecotone Framework for full CQRS/ES, builds async projections via RabbitMQ, configures read stores (Elasticsearch, Redis) separate from write database. Ensures testability through in-memory event store for integration tests. |
| Backend Developer (Python) | Pflicht | Designs CQRS architecture for Python services: defines pattern applicability boundaries, selects read model synchronization strategy (sync vs async projections), implements event-driven projections via Kafka/RabbitMQ. Integrates CQRS with event sourcing for full change auditability. |
| Backend Developer (Rust) | Pflicht | Designs CQRS for high-performance Rust systems: implements event sourcing with custom event store, optimizes projections through zero-copy deserialization and parallel processing. Designs snapshot strategy for aggregates and ensures idempotent event handling. |
| Backend Developer (Scala) | Pflicht | Designs CQRS architecture for Scala microservices: configures Akka Cluster Sharding for distributed aggregates, implements multiple projections (Slick, Elasticsearch, Cassandra), optimizes event journal through snapshot strategy and event deletion. Integrates with Kafka for cross-service event propagation. |
| Solutions Architect | Pflicht | Designs system architecture with CQRS. Makes architectural decisions (ADR). Evaluates non-functional requirements. |
| Rolle | Pflicht | Beschreibung |
|---|---|---|
| Backend Developer (C#/.NET) | Pflicht | Standardizes CQRS in .NET organization: chooses between MediatR, Wolverine and custom implementations, creates NuGet packages for standard CQRS setup, designs distributed CQRS via MassTransit. Defines architectural guidelines and trains teams on DDD + CQRS + ES. |
| Backend Developer (Elixir) | Pflicht | Standardizes CQRS in the Elixir ecosystem: defines architectural boundaries for bounded contexts, designs inter-aggregate communication through domain events, creates testing utilities for aggregate and projection verification. Trains teams on DDD + CQRS + ES on Elixir. |
| Backend Developer (Go) | Pflicht | Defines CQRS strategy for the Go platform: standardizes patterns for command validation and authorization, designs multi-projection architecture for different read-optimized views. Creates internal CQRS framework with standardized error handling and observability. |
| Backend Developer (Java/Kotlin) | Pflicht | Standardizes CQRS in the company's Java ecosystem: defines when to apply full CQRS vs simplified read/write separation, designs event store infrastructure (Axon Server vs EventStoreDB vs custom), standardizes CQRS component testing strategy. Trains teams on DDD + CQRS. |
| Backend Developer (Node.js) | Pflicht | Standardizes CQRS in Node.js ecosystem: creates internal library for CQRS with middleware support, designs event catalog with versioning, defines testing patterns for aggregates and projections. Implements distributed CQRS via message broker for cross-service consistency. |
| Backend Developer (PHP) | Standardizes CQRS in the PHP ecosystem: defines architectural decision records for CQRS adoption, designs migration strategy from existing CRUD code to CQRS, creates internal Composer packages for standardization. Trains PHP teams on DDD approaches with CQRS. | |
| Backend Developer (Python) | Pflicht | Defines CQRS adoption strategy for the organization: standardizes read/write separation approaches, designs infrastructure for projection rebuilds, implements consistency lag monitoring between models. Trains teams on when CQRS is justified and how to avoid over-engineering. |
| Backend Developer (Rust) | Pflicht | Defines CQRS architecture for Rust platform: creates CQRS framework with derive macros for automatic command/query handler generation, designs event schema management with serde and schema validation. Standardizes testing through property-based tests for aggregates. |
| Backend Developer (Scala) | Pflicht | Standardizes CQRS in Scala ecosystem: chooses between Akka Persistence and ZIO-based solutions (zio-entity), designs multi-bounded context architecture, creates abstractions for testable CQRS. Defines migration strategy from Akka Classic to Akka Typed for CQRS modules. |
| Solutions Architect | Pflicht | Defines product architectural strategy with CQRS. Establishes architecture guidelines. Conducts architecture reviews. |
| Rolle | Pflicht | Beschreibung |
|---|---|---|
| Backend Developer (C#/.NET) | Shapes enterprise CQRS strategy for .NET: designs platform for self-service CQRS modules with event store, defines governance for event schema evolution and cross-domain event contracts. Influences organizational architecture through CQRS/ES adoption for critical domains. | |
| Backend Developer (Elixir) | Shapes CQRS strategy for the Elixir platform: designs distributed CQRS with BEAM clustering, defines event sourcing governance, develops approaches for cross-cluster event replication. Influences Commanded/EventStore ecosystem through contributions and architectural guidance. | |
| Backend Developer (Go) | Shapes architectural vision for CQRS in distributed Go systems: designs cross-service CQRS with federated queries, defines strategy for eventually consistent read models in multi-region deployment. Develops approaches to testing and debugging CQRS systems in production. | |
| Backend Developer (Java/Kotlin) | Shapes enterprise CQRS strategy: designs multi-bounded context CQRS with shared event bus, defines governance for event schema evolution, develops platform for self-service CQRS modules. Influences architectural decisions on CQRS adoption in legacy Java systems. | |
| Backend Developer (Node.js) | Shapes CQRS architectural vision for Node.js platform: designs event-driven architecture with CQRS as core pattern, defines strategy for real-time projections via WebSocket/SSE. Influences architectural decisions on CQRS adoption considering Node.js async nature. | |
| Backend Developer (PHP) | Shapes CQRS architectural strategy for the PHP platform: determines where CQRS is justified in the PHP process model context, designs PHP CQRS module integration with event-driven microservices in other languages. Influences CQRS ecosystem development in PHP (Ecotone, Broadway). | |
| Backend Developer (Python) | Shapes CQRS architectural strategy at platform level: designs infrastructure for multi-tenant CQRS with isolated read stores, defines patterns for cross-service queries and data mesh integration. Influences architectural decisions on monolith decomposition using CQRS as a transitional pattern. | |
| Backend Developer (Rust) | Shapes CQRS strategy for distributed Rust systems: designs multi-region event store with conflict resolution, defines architecture for cross-service CQRS with gRPC-based event propagation. Influences Rust CQRS/ES ecosystem development through open-source contributions. | |
| Backend Developer (Scala) | Shapes CQRS strategy for Scala platform: designs event-driven architecture with CQRS as core pattern, defines event schema governance with Avro/Protobuf, develops platform for self-service aggregate creation. Influences Scala CQRS ecosystem development (Akka, ZIO). | |
| Solutions Architect | Pflicht | Defines the organization's architectural strategy. Designs reference architectures. Establishes architecture governance. |