From 9c2611e6c85e20f88bc4dc4763974c51527a0314 Mon Sep 17 00:00:00 2001 From: Miguel de Barros Date: Tue, 27 Jul 2021 15:26:24 +0200 Subject: [PATCH] chore: update technical architecture overview for pi14 (#323) - Added Arch-Mojaloop-overview-PI14.svg: - Removed forensic logging sidecar (to make space) - Updated Settlement components to depict separate CGS & Rules functionality, and renamed components match new names - Updates to Technical overview for PI14 main readme - Added PI14 Technical overview page - Updated summary to include PI14 Technical Overview page link Co-authored-by: Sam <10507686+elnyry-sam-k@users.noreply.github.com> --- SUMMARY.md | 1 + mojaloop-technical-overview/overview/README.md | 14 +++++++------- .../architecture/Arch-Mojaloop-overview-PI14.svg | 3 +++ .../overview/components-PI14.md | 7 +++++++ 4 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 mojaloop-technical-overview/overview/assets/diagrams/architecture/Arch-Mojaloop-overview-PI14.svg create mode 100644 mojaloop-technical-overview/overview/components-PI14.md diff --git a/SUMMARY.md b/SUMMARY.md index d38b943a0..1022391b5 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -31,6 +31,7 @@ * [Documentation Style Guide](contributors-guide/documentation/documentation-style-guide.md) * [Mojaloop Technical Overview](mojaloop-technical-overview/README.md) * [Mojaloop Hub](mojaloop-technical-overview/overview/README.md) + * [Current Architecture - PI14](mojaloop-technical-overview/overview/components-PI14.md) * [Current Architecture - PI12](mojaloop-technical-overview/overview/components-PI12.md) * [Legacy Architecture - PI11](mojaloop-technical-overview/overview/components-PI11.md) * [Legacy Architecture - PI8](mojaloop-technical-overview/overview/components-PI8.md) diff --git a/mojaloop-technical-overview/overview/README.md b/mojaloop-technical-overview/overview/README.md index 34c9a6b5b..373cbfa93 100644 --- a/mojaloop-technical-overview/overview/README.md +++ b/mojaloop-technical-overview/overview/README.md @@ -2,9 +2,9 @@ There are several components that make up the Mojaloop ecosystem. The Mojaloop Hub is the primary container and reference we use to describe the core Mojaloop components. -The following component diagram shows the break-down of the Mojaloop services and its micro-service architecture: +The following component diagram shows the break-down of the Mojaloop services and its micro-service architecture: -![Current Mojaloop Architecture Overview](./assets/diagrams/architecture/Arch-Mojaloop-overview-PI12.svg) +![Current Mojaloop Architecture Overview](./assets/diagrams/architecture/Arch-Mojaloop-overview-PI14.svg) _Note: Colour-grading indicates the relationship between data-store, and message-streaming / adapter-interconnects. E.g. `Central-Services` utilise `MySQL` as a Data-store, and leverage on `Kafka` for Messaging_ @@ -15,10 +15,10 @@ These consist of: * The **Account Lookup Service** (**ALS**) provides a mechanism to resolve FSP routing information through the Participant API or orchestrate a Party request based on an internal Participant look-up. The internal Participant look-up is handled by a number of standard Oracle adapter or services. Example Oracle adapter/service would be to look-up Participant information from Pathfinder or a Merchant Registry. These Oracle adapters or services can easily be added depending on the schema requirements. * The **Quoting Service** (**QA**) provides Quoting is the process that determines any fees and any commission required to perform a financial transaction between two FSPs. It is always initiated by the Payer FSP to the Payee FSP, which means that the quote flows in the same way as a financial transaction. * The **Simulator** (**SIM**) mocks several DFSP functions as follows: - - Oracle end-points for Oracle Participant CRUD operations using in-memory cache; - - Participant end-points for Oracles with support for parameterized partyIdTypes; - - Parties end-points for Payer and Payee FSPs with associated callback responses; - - Transfer end-points for Payer and Payee FSPs with associated callback responses; and - - Query APIs to verify transactions (requests, responses, callbacks, etc) to support QA testing and verification. + * Oracle end-points for Oracle Participant CRUD operations using in-memory cache; + * Participant end-points for Oracles with support for parameterized partyIdTypes; + * Parties end-points for Payer and Payee FSPs with associated callback responses; + * Transfer end-points for Payer and Payee FSPs with associated callback responses; and + * Query APIs to verify transactions (requests, responses, callbacks, etc) to support QA testing and verification. On either side of the Mojaloop Hub there is sample open source code to show how a DFSP can send and receive payments and the client that an existing DFSP could host to connect to the network. diff --git a/mojaloop-technical-overview/overview/assets/diagrams/architecture/Arch-Mojaloop-overview-PI14.svg b/mojaloop-technical-overview/overview/assets/diagrams/architecture/Arch-Mojaloop-overview-PI14.svg new file mode 100644 index 000000000..06680fbae --- /dev/null +++ b/mojaloop-technical-overview/overview/assets/diagrams/architecture/Arch-Mojaloop-overview-PI14.svg @@ -0,0 +1,3 @@ + + +
Operational Monitoring
Operational Monitoring
Quality Assurance
Quality Assurance
Core Components
Core Components
API - Security / Policy / Ingress / Egress
API - Security / Policy / Ingress / Egress
Continuous Integration & Delivery
Continuous Integration & Delivery
Container Management & Orchestration
Container Management & Orchestration
Supporting Components
Supporting Components
Helm
(Package Manager for K8s, Templatized Deployments and Configuration)
Helm...
Kubernetes
(Abstraction layer for Infrastructure, Infrastructure as a Policy, Container Orchestration)
Kubernetes...
Docker
(Container Engine)
Docker...
Infrastructure
(AWS, Azure, On-Prem)
Infrastructure...
EFK - ElasticSearch / Fluentd / Kibana
(Log Search / Collection / Monitoring / Tracing)
EFK - ElasticSearch / Fluentd / Kibana...
Promfana - Prometheus / Grafana
(Metrics - Collection / Monitoring)
Promfana - Prometheus / Grafana...
Open Tracing
(Distributed Tracing)
Open Tracing...
Rancher
(Infrastructure Management)
Rancher...
Mojaloop API Adapter
(API - Transfers)
Mojaloop API Adapter...
Central-Services
(API - Operational Admin)
Central-Services...
Central-Services
(Handler - Prepare)
Central-Services...
Central-Services
(Handler - Position)
Central-Services...
Central-Services
(Handler - Fulfil)
Central-Services...
Central-Services
(Handler - Get Transfers)
Central-Services...
Central-Services
(Handler - Timeout)
Central-Services...
ALS - Account-Lookup-Service
(API - Parties, Participant)
ALS - Account-Lookup-Service...
ALS-Oracle-Pathfinder
(MSISDN Lookup)
ALS-Oracle-Pathfinder...
Central-Event-Processor
(CEP)
Central-Event-Processor...
Email-Notifier
(Handler - Email)
Email-Notifier...
Central-Services
(Handler - Admin)
Central-Services...
Circle-CI
(Test, Build, Deploy)
Circle-CI...
Docker Hub
(Container Repository)
Docker Hub...
NPM Org
(NPM Repository)
NPM Org...
GitBooks
(Documetation)
GitBooks...
API Gateway (IaC)
(API - Parties, Participants, Quotes, Transfers, Bulk Transfers; OAuth; MTLS)
API Gateway (IaC)...
Central-Services
(Handler - Bulk Prepare)
Central-Services...
Central-Services
(Handler - Bulk Fulfil)
Central-Services...
Central-Services
(Handler - Bulk Process)
Central-Services...
Mojaloop API Adapter
(API - Bulk Transfers)
Mojaloop API Adapter...
Central-Settlements
(API - Settlements)
Central-Settlements...
Event-Stream-Processor
(Logs, Error, Audits, Tracing)
Event-Stream-Processor...
Simulators
(API, SDK, FSP & Oracle)
Simulators...
On-boarding
(Postman - Scripts)
On-boarding...
Functional Tests
(Postman - Scripts)
Functional Tests...
Testing Toolkit
(
UI, CLI & Backend)
Testing Toolkit...
License, Security & Audit
(Dependencies)
License, Security & Audit...
Persistence
Persistence
Redis
(SDK - Cache)
Redis...
MongoDB
(CEP - Data)
MongoDB...
MySQL
(Percona - Data)
MySQL...
Kafka
(Message - Streaming)
Kafka...
Transaction Request Service
(API - Transaction)
Transaction Request Service...
Software Dev Kits
Software Dev Kits
Oracle SDK
(Participant Store)
Oracle SDK...
Mojaloop SDK 
(FSP Payer/Payee)
Mojaloop SDK...
Event SDK
(Audit, Log, Trace - Client/Server)
Event SDK...
Event-Sidecar
(Logs, Error, Audits, Tracing)
Event-Sidecar...
Mojaloop API Adapter
(Handler - Notifications)
Mojaloop API Adapter...
Quoting-Service
(API - Quotes)
Quoting-Service...
Finance-Portal-UI
(API - Bulk Transfers)
Finance-Portal-UI...
Settlement-Management
(Closing, Recon report, Cronjob)
Settlement-Management...
Schema-Adapter
(SDK - Parties, Participants, Quotes, Transfers)
Schema-Adapter...
IaC (Infra as Code) Tools
(Automated Lab/Env Setup & Configuration)
IaC (Infra as Code) Tools...
Third Party API Adapter
(PoC - API - Transfers)
Third Party API Adapter...
Third Party API Adapter
(PoC - Handler - Notifications)
Third Party API Adapter...
Central-Settlements
(Handler - Deferred)
Central-Settlements...
Central-Settlements
(Handler - Gross)
Central-Settlements...
Central-Settlements
(Handler - Rules)
Central-Settlements...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/mojaloop-technical-overview/overview/components-PI14.md b/mojaloop-technical-overview/overview/components-PI14.md new file mode 100644 index 000000000..d4c4e3887 --- /dev/null +++ b/mojaloop-technical-overview/overview/components-PI14.md @@ -0,0 +1,7 @@ +# Mojaloop Hub Current Components - PI14 + +The following component diagram shows the break-down of the Mojaloop services and its micro-service architecture for pre PI14: + +![Mojaloop Architecture Overview PI14](./assets/diagrams/architecture/Arch-Mojaloop-overview-PI14.svg) + +_Note: Colour-grading indicates the relationship between data-store, and message-streaming / adapter-interconnects. E.g. `Central-Services` utilise `MySQL` as a Data-store, and leverage on `Kafka` for Messaging_