Inventory & Finance Management SaaS — Sequential End-to-End Flow Simulator
One client at a time. Each scenario follows the real request path from client ingress to the final processing layer. Protocol transformation is shown only where it is actually required.
Client
1. Web Browser / Microfrontends
2. iOS App
3. Android App
4. Desktop / POS
5. 3rd-Party / API-as-a-Service
6. External Marketplace / Webhook
Flow
▶ Start
⏸ Pause
↻ Reset
Speed
Ready
CLIENTS — SELECT ONE CLIENT AND FOLLOW ITS FLOW END-TO-END
Web Browser / MFEs
gRPC-Web • HTTPS • browser
Can use HTTP/1.1 or HTTP/2
iOS App
Native gRPC • HTTP/2
No gRPC-Web conversion
Android App
Native gRPC • HTTP/2
No gRPC-Web conversion
Desktop / POS
Native gRPC • HTTP/2
Immediate business response
3rd-Party / API Client
REST/JSON • HTTP/1.1 or HTTP/2
API key / OAuth credentials
Marketplace / Webhook
REST / HTTPS webhook
Shopify / Amazon / WooCommerce
GATEWAY — ONLY THE REQUIRED PROTOCOL HANDLING IS SHOWN
gRPC-Web Handler
Input: gRPC-Web over HTTP/1.1 or HTTP/2
Action: translate gRPC-Web → native gRPC
Internal transport: gRPC / HTTP/2
Only used by browser-based clients
Native gRPC Handler
Input: native gRPC / HTTP/2
Action: no protocol conversion
Validate metadata + forward
Used by native mobile/desktop clients
REST Handler
Input: REST/JSON over HTTP/1.1 or HTTP/2
Action: validate JSON + API version
Adapt REST/JSON → internal gRPC
Internal transport: gRPC / HTTP/2
Auth / Tenant Context
Opaque token / API credential
→ Identity & Organization service
→ Keycloak validation
→ trusted userId + tenantId + scopes
Routing / Reliability
Gateway → target Service Load Balancer
timeouts • retry policy • rate limit
trace ID • request ID • CORS
No business logic
SERVICE LAYER — EVERY SERVICE IS BEHIND ITS OWN LOAD BALANCER
Identity & Organization LB
→ 2 service instances
Users • roles • tenant membership
Keycloak integration
Product & Inventory LB
→ 3 service instances
Product • stock • reservation
Warehouse • movements
Sales & Order LB
→ 3 service instances
Canonical sales/order
Outbox → Kafka
Finance & Accounting LB
→ 2 service instances
Ledger • journals • AR/AP
Financial source of truth
Integration LB
→ 3 service instances
Webhooks • external sync
External → canonical mapping
Platform Communication LB
→ 2 service instances
Email • SMS • push
Async event consumers
Sync rule: Service A never calls Service B instance directly. It calls Service B's Load Balancer, which selects a healthy instance.
Critical transaction examples: Sales → Product & Inventory (reserve stock); Integration → Sales (canonicalize marketplace order).
PERSISTENCE + EVENTING
PostgreSQL — transactional source of truth
Each bounded context owns its data
Sales uses Outbox for DB + event reliability
Redis
Hot product/inventory cache
Not a source of truth
Apache Kafka — asynchronous events
sales.events • inventory.events • finance.events
catalog/tenant • integration • notification events
Consumer groups • idempotency • retry/DLQ
Cassandra
Integration/event history
Denormalized read models
Object Storage
Invoices • images
Import/export files
FINAL / DOWNSTREAM PROCESSING
Reporting / Analytics Read Model
Consumes events → dashboards and reports
Eventually consistent by design
External Sync / Partner Effects
Outbound marketplace APIs/webhooks
Integration-driven side effects
Email / SMS / Push Providers
Final notification delivery
Failure isolated from core sale
Audit / Observability
Logs • metrics • traces
Audit trail
Final Response / Completion
Response returns through Gateway
or async processing completes