Flipkart Marketplace Platform  ·  View 08 of 25  ·  3 · Structure

Container Architecture

The deployable units, the technology each is written in, and the store each one owns.

Editable source SVG draw.io All views
Azure global edge Front Door Premium WAF + TLS 1.3 Static and media CDN Blob origin DDoS Protection network tier AKS — customer plane Entry Customer BFF Go 1.23 Keycloak OIDC + refresh Quota service Redis buckets Discovery Catalog API Java 21 Search API Go 1.23 Reco API KServe Pricing and offers Java 21 Commerce Cart Java 21 Checkout Java 21 Inventory Go 1.23 Order Java 21 AKS — PCI cardholder data environment (separate subscription) Payment orchestrator Java 21 Token vault HashiCorp Vault PSP connectors UPI · card · wallet Webhook receiver idempotent AKS — seller, supply and trust plane Seller Seller service Catalog ingest bulk feeds Settlement double entry Supply Fulfilment engine OR-Tools Logistics Returns Trust Risk scoring KServe Content moderation Dispute workflow Temporal Stateful platform on AKS Kafka Strimzi · 300 brokers Flink operator · 900 slots Temporal sagas OpenSearch 150M docs Apache Pinot seller analytics Azure managed data services Cosmos DB for PostgreSQL Citus · 64 shards Cosmos DB NoSQL catalog · multi-write Azure Managed Redis cart · locks · price ADLS Gen2 media + lakehouse Key Vault HSM keys UPI / NPCI Card acquirer 3PL carrier APIs KYC provider FCM / APNs / SMS HTTPS · Private Link OIDC introspect gRPC reserve mTLS · tokenised HTTPS SQL · shard key detokenise Container Architecture — Deployable Units and Their Stores Interface / broker Security / platform Application we own Queue / topic Data store External / third party synchronous One AKS fleet, four node-pool tenancies. Only the cardholder plane is a separate subscription and a separate cluster; everything else is namespace and mesh policy isolation. v 1.0 · owner Platform Engineering · date 2026-09

Decisions

  • One AKS fleet with four tenancies; only the cardholder data environment is a separate cluster in a separate subscription
  • Java 21 for commerce and money, Go for the high-QPS edge and inventory, Python only where a model is being served
  • Every service owns its schema — there is no shared database and no cross-service SQL

Why the PCI plane is split

  • A separate subscription bounds the audit: nothing else inherits the scope, and the RBAC boundary is a tenancy boundary
  • No card number leaves the token vault; the commerce plane holds tokens and amounts only
  • The cost is a second cluster and a cross-plane mTLS hop on the checkout path, and it is worth it

Deliberately omitted

  • Sidecars, service accounts and network policies — implied by Istio ambient mesh, not drawn
  • The observability stack, which has its own view
  • Most edges: nine are drawn out of roughly ninety, chosen to show each boundary crossing once