Several modules / features can be extracted to run as separate micro-services. Typical examples are:
- Authentication module
- Payment routing
- Transaction workflows
- Communication gateways (email, SMS)
- Billing / Invoicing
The CoreWallet offers the Balance Transaction feature, which is a generic transaction-workflow that enables fine-granular balance-operations like reserve, capture, refund, credit. Using this generic feature, external transaction workflows can be implemented while still offering consistent balance operations, even when both workflows do not share the same database-transaction.
The diagram below shows an example deployment using several micro-services, most notably the 'product transaction workflow'. Of course each micro-service has its own storage (which is not shown in the diagram).