Order processing — existing approach

The Kafka log owns ordering on the order-processing path

Order processing — existing approach The Kafka log owns ordering on the order-processing path Client app · Architecture component Client app L7 LB / gateway · K8s Ingress · Architecture component L7 LB / gateway K8s Ingress API servers ×N · stateless · Architecture component API servers ×N stateless read model · Architecture component read model cache · avoid repeated reads · Architecture component cache avoid repeated reads Kafka log · OrderId key partition · Architecture component Kafka log OrderId key partition order consumers ×N · consumer group · offset · Architecture component order consumers ×N consumer group · offset inter-server LB · K8s Service · discovery · Architecture component inter-server LB K8s Service · discovery inventory/payment · services ×N · Architecture component inventory/payment services ×N Order state DB · Architecture component Order state DB resync job · Architecture component resync job order · query HTTP event append ordered partition update inv · pay call load-modify-store reconcile

The pieces added just for ordering

  • • The Kafka log owns ordering on the order-processing path (OrderId key partition)
  • • Consumers: consumer group · offset · rebalance + version check · dedupe
  • • Inter-server calls route through a K8s Service · service-discovery LB
  • • Queries hit a read model (cache avoids repeated reads), corrected by lag monitoring · a resync job