Commercial License Revamp
2025
Decomposed a legacy government licence monolith into a modern microservices target across six DDD bounded contexts on Camunda BPMN/DMN — now the agreed target architecture across engineering.
The problem
The Commercial Licence service had grown into a single deployable unit owning approval workflows, user state, licence issuance, location, invoicing, and a downstream integration (“Salama”). One change broke many surfaces; release cadence had dropped to monthly.
The constraint
A live super-app already routed millions of citizen interactions through it. We could not break the public API contract.
The architecture
Six DDD bounded contexts: Approval, User, Commercial, Location, Invoice, and Salama.
Camunda BPMN/DMN orchestrates the cross-context approval flow; RabbitMQ carries the payment-confirmation event from the Billing System. The observability stack is ELK + Elastic APM + Prometheus / Grafana.
Trade-offs (ADRs)
- Self-managed Camunda over Camunda Cloud — data sovereignty + cost
- RabbitMQ over Kafka for payment confirmations — operational simplicity
- Strangler Fig migration over big-bang — required zero-downtime cutover
Outcome
Agreed target architecture across the engineering organisation. Staging cluster sized for 4–8K req/min. Same Camunda-based approach applied to the parallel Building License Revamp.