Mojaloop vNext is next generation Mojaloop platform, implemented from the ground up to be secure, scalable, cost-efficient to run and extensible.
The implementation is guided by the agreed Reference Architecture and the learnings from the Performance and Scalability PoC (report and repo).
DDD, SOLID, Event driven, strict Microservices etc
Reference architecture design principles can be found here.
Mojaloop vNext's is composed of multiple services and libraries, these are arranged in cohesive groups called Bounded Contexts (BC's), as per DDD definition. Each BC has its own GitHub repository where all its code is kept together.
- Business BCs
- Cross-cutting concerns BCs
Business BCs, group implementations of the main business features and use cases, such as transfers or participant lifecycle management.
Cross-cutting concerns BCs group transversal features that are required by the switch in multiple other BCs, such as security or logging.
- Business BCs:
- Participant Lifecycle Management - participants-bc
- Account Lookup and Discovery - account-lookup-bc
- Quoting (also known as agreements) - quoting-bc
- Transfers - transfers-bc
- Accounts and Balances - accounts-and-balances-bc
- Settlements - settlements-bc
- Cross-cutting concerns BCs:
- Security - security-bc
- Logging - logging-bc
- Auditing - auditing-bc
- Platform Configuration - platform-configuration-bc
- Certificate Management - certificate-management-bc
Besides the business and cross-cutting concerns bounded contexts, Mojaloop vNext has other repositories to keep other general items, such as common libraries, user interfaces, scripts, tooling and documentation.
- Platform Shared Libraries, includes other common platform libs that don't fit in any BC - platform-shared-tools
- Platform Shared Tools, includes other common tooling and documentation (ex: dev deployment scripts) - platform-shared-tools
Topics
- npm workspaces
- package naming convention
- service structure
- scripts
- usage of auditing, logging, security and platform-config
- testing
- docker build
Topics
- nvm
- per OS specifics (linux, macos, windows)
- installing librdkafka to reduce npm install times