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:
- Commands: All flask commands