Service Boundaries

Ownership boundaries, isolated data, and bounded contexts for primitives and platform services.

Source: docs/01_blueprint.md, docs/02_ecosystem_architecture.md, docs/03_primitives.md

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