| Producer | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Validate schema and choose partition by stable key or explicit partition. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of Schema Registry. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Leader fails after local append before quorum” to the external caller. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Producer boundary before extracting or scaling it. |
| Schema Registry | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Leader dedupes producer epoch/sequence, appends batch, and replicates to followers. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Producer from also owning the contract and failure behavior of Partitioner. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Consumer rebalance overlaps processing” to Producer. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Schema Registry boundary before extracting or scaling it. |
| Partitioner | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Advance high watermark after in-sync quorum and acknowledge according to durability policy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Schema Registry from also owning the contract and failure behavior of Broker Front Door. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Slow replica falls out of ISR” to Schema Registry. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Partitioner boundary before extracting or scaling it. |
| Broker Front Door | Owns authentication, validation, quotas, deadlines, and routing. In this design it participates in: Consumers fetch ordered batches and commit offsets under a group generation. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Partitioner from also owning the contract and failure behavior of Partition Leader. | Put protocol, authentication, quotas, and business transitions in one process. Acceptable at low scale, but it couples external traffic risk to domain releases. Here that simpler choice would couple “Producer epoch is reused after retry” to Partitioner. | Costs another hop, policy distribution, and a high-blast-radius fleet. Introduce it when many clients or services need one protocol and protection boundary. Measure the latency, saturation, lag, or mismatch at the Broker Front Door boundary before extracting or scaling it. |
| Partition Leader | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Retention/compaction closes segments and optionally moves immutable data to object storage. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Broker Front Door from also owning the contract and failure behavior of Follower Replicas. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Compaction removes required tombstone” to Broker Front Door. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Partition Leader boundary before extracting or scaling it. |
| Follower Replicas | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Validate schema and choose partition by stable key or explicit partition. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Partition Leader from also owning the contract and failure behavior of Commit Quorum. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Leader fails after local append before quorum” to Partition Leader. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Follower Replicas boundary before extracting or scaling it. |
| Commit Quorum | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Leader dedupes producer epoch/sequence, appends batch, and replicates to followers. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Follower Replicas from also owning the contract and failure behavior of Segment Log. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Consumer rebalance overlaps processing” to Follower Replicas. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Commit Quorum boundary before extracting or scaling it. |
| Segment Log | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: Advance high watermark after in-sync quorum and acknowledge according to durability policy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Commit Quorum from also owning the contract and failure behavior of Index / Page Cache. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Slow replica falls out of ISR” to Commit Quorum. | Costs eventual consistency, schema evolution, replay tooling, idempotent consumers, and lag operations. Earn it when bursts or downstream failure must not block acknowledgment. Measure the latency, saturation, lag, or mismatch at the Segment Log boundary before extracting or scaling it. |
| Index / Page Cache | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: Consumers fetch ordered batches and commit offsets under a group generation. | Removes repeated work from the latency-critical path. It prevents Segment Log from also owning the contract and failure behavior of Controller Quorum. | Read authoritative storage for every request. Simpler initially, but latency and source-of-truth load scale together and a hot key becomes a database incident. Here that simpler choice would couple “Producer epoch is reused after retry” to Segment Log. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (10M messages/s · petabytes retained · p99 < 20 ms) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Index / Page Cache boundary before extracting or scaling it. |
| Controller Quorum | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Retention/compaction closes segments and optionally moves immutable data to object storage. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Index / Page Cache from also owning the contract and failure behavior of Consumer Group Coordinator. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Compaction removes required tombstone” to Index / Page Cache. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Controller Quorum boundary before extracting or scaling it. |
| Consumer Group Coordinator | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Validate schema and choose partition by stable key or explicit partition. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Controller Quorum from also owning the contract and failure behavior of Consumer. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Leader fails after local append before quorum” to Controller Quorum. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Consumer Group Coordinator boundary before extracting or scaling it. |
| Consumer | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Leader dedupes producer epoch/sequence, appends batch, and replicates to followers. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Consumer Group Coordinator from also owning the contract and failure behavior of Offset Store. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Consumer rebalance overlaps processing” to Consumer Group Coordinator. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Consumer boundary before extracting or scaling it. |
| Offset Store | Owns authoritative versioned state or immutable evidence. In this design it participates in: Advance high watermark after in-sync quorum and acknowledge according to durability policy. | Defines the source of truth and commit boundary. It prevents Consumer from also owning the contract and failure behavior of Tiered Object Store. | Let each service persist its own interpretation. That removes one clear commit boundary and makes retries, support, and reconciliation ambiguous. Here that simpler choice would couple “Slow replica falls out of ISR” to Consumer. | Costs schema migration, replication, backup, and shard ownership. Split storage only when access patterns, retention, or compliance boundaries materially differ. Measure the latency, saturation, lag, or mismatch at the Offset Store boundary before extracting or scaling it. |
| Tiered Object Store | Owns authoritative versioned state or immutable evidence. In this design it participates in: Consumers fetch ordered batches and commit offsets under a group generation. | Defines the source of truth and commit boundary. It prevents Offset Store from also owning the contract and failure behavior of Compaction / Retention. | Let each service persist its own interpretation. That removes one clear commit boundary and makes retries, support, and reconciliation ambiguous. Here that simpler choice would couple “Producer epoch is reused after retry” to Offset Store. | Costs schema migration, replication, backup, and shard ownership. Split storage only when access patterns, retention, or compliance boundaries materially differ. Measure the latency, saturation, lag, or mismatch at the Tiered Object Store boundary before extracting or scaling it. |
| Compaction / Retention | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Retention/compaction closes segments and optionally moves immutable data to object storage. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Tiered Object Store from also owning the contract and failure behavior of operators and repair tooling. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Compaction removes required tombstone” to Tiered Object Store. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Compaction / Retention boundary before extracting or scaling it. |