Skip to content

Public API

The Payment Gateway is composed of several subdomains (AKA bounded contexts in DDD lingo), each matching a Modular Monolith Subcomponent. However, for performance reasons it exposes types and business logic in separate modules. Importing types won't induce a significant performance penalty at application load time, whereas business logics will require all their dependencies.

Type definitions

Public definitions from all subcomponents are gathered in the same modules:

  • Enums: Basic enum types
  • Exceptions: Basic exceptions
  • Entities: Entity dataclasses and all their related types and enums

Business logic

Business logic is split into separate modules for each publicly exposed subdomain:

Commands

All commands are gathered under the same Flask group: