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:

Business logic

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

Events

  • Events ⧉: Domain events published via events pipeline

Commands

All commands are gathered under the same Flask group: