Service Boundaries
Ownership boundaries, isolated data, and bounded contexts for primitives and platform services.
Core idea
FinFactory is not a single fintech application. It is a platform made of reusable financial primitives.
Each primitive is a bounded service with its own domain, API, database, events, operational rules, and compliance responsibilities. Products are composed by combining primitives through a unified product API and an orchestration layer.
Primitive services
Primitive services are independent financial capabilities.
Each primitive should have:
- Clear bounded context
- Own database
- Own public or internal API
- Own event contracts
- Own administrative workflows
- Own audit logs
- Own operational metrics
- Own service-level responsibilities
Primitive services should not share databases with each other.
Primitive design rules
Each primitive should:
- Own its domain
- Own its database
- Expose stable APIs
- Publish domain events
- Support idempotent commands
- Maintain audit logs
- Enforce authorization
- Support tenant-level configuration where needed
- Avoid direct database access from other services
- Avoid leaking provider-specific details into product APIs