# Account Lookup Service
The Account Lookup Service (ALS) (refer to section 6.2.1.2
) as per the Mojaloop 1.1 Specification implements the following use-cases:
- Participant Look-up
- Party Look-up
- Manage Participants Registry information
- Adding Participant Registry information
- Deleting Participant Registry information
Use-cases that have been implemented over and above for Hub Operational use:
- Admin Operations
- Manage Oracle End-point Routing information
- Manage Switch End-point Routing information
# 1. Design Considerations
# 1.1. Account Lookup Service (ALS)
The ALS design provides a generic Central-Service component as part of the core Mojaloop. The purpose of this component is to provide routing and alignment to the Mojaloop API Specification. This component will support multiple Look-up registries (Oracles). This ALS will provide an Admin API to configure routing/config for each of the Oracles similiar to the Central-Service API for the End-point configuration for DFSP routing by the Notification-Handler (ML-API-Adapter Component). The ALS will in all intense purpose be a switch with a persistence store for the storage/management of the routing rules/config.
# 1.1.1. Assumptions
- The ALS design will only cater for a single switch for the time being.
- Support for multiple switches will utilise the same DNS resolution mechanism that is being developed for the Cross Border/Network design.
# 1.1.2. Routing
The routing configuration will be based on the following:
- PartyIdType - See section
7.5.6
of the Mojaloop Specification - Currency - See section
7.5.5
of the Mojaloop Specification. Currency code defined in ISO 4217 (opens new window) as three-letter alphabetic string. This will be optional, howeverisDefault
indicator must be set totrue
if theCurrency
is not provided. - isDefault - Indicator that a specific Oracle is the default provider for a specific PartyIdType. Note that there can be many default Oracles, but there can only be a single Oracle default for a specific PartyIdType. The default Oracle for a specific PartyIdType will only be selected if the originating request does not include a Currency filter.
# 1.2. ALS Oracle
The ALS Oracle be implemented as either a Service or Adapter (semantic dependant on use - Mediation = Adapter, Service = Implementation) will provide a look-up registry component with similar functionality of the /participants
Mojaloop API resources. It has however loosely based on the ML API specification as it's interface implements a sync pattern which reduces the correlation/persistence requirements of the Async Callback pattern implemented directly by the ML API Spec. This will provide all ALS Oracle Services/Adapters with a standard interface which will be mediated by the ALS based on its routing configuration.
This component (or back-end systems) will also be responsible for the persistence & defaulting of the Participant details.
# 2. Participant Lookup Design
# 2.1. Architecture overview
Note: The Participant Lookup use-case similarly applies to for a Payee Initiated use-case such as transactionRequests. The difference being that the Payee is the initiation in the above diagram.
# 2.2. Sequence diagrams
# 2.2.1. GET Participants
# 2.2.2. POST Participants
# 2.2.3. POST Participants (Batch)
# 2.2.4. DEL Participants
# 3. Party Lookup Design
# 3.1. Architecture overview
# 3.2. Sequence diagram
# 3.2.1. GET Parties
# 4. ALS Admin Design
# 4.1. Architecture overview
# 4.2. Sequence diagram
# 4.2.1 GET Oracles
# 4.2.2 POST Oracle
# 4.2.3 PUT Oracle
# 4.2.4 DELETE Oracle
# 4.2.5 DELETE Endpoint Cache
# 5. Database Design
# 5.1. ALS Database Schema
# Notes
partyIdType
- Values are currently seeded as per section7.5.6
Mojaloop 1.1 Specification.currency
- See section7.5.5
of the Mojaloop Specification. Currency code defined in ISO 4217 (opens new window) as three-letter alphabetic string. This will be optional, and must provide a "default" config if no Currency is either provided or provide a default if the Currency is provided, but only the "default" End-point config exists.endPointType
- Type identifier for the end-point (e.g.URL
) which provides flexibility for future transport support.migration*
- Meta-data tables used by Knex Framework engine.- A
centralSwitchEndpoint
must be associated to theOracleEndpoint
by the Admin API upon insertion of a newOracleEndpoint
record. If thecentralSwitchEndpoint
is not provided as part of the API Request, then it must be defaulted.
# 6. ALS Oracle Design
Detail design for the Oracle is out of scope for this document. The Oracle design and implementation is specific to each Oracle's requirements.
# 6.1. API Specification
Refer to ALS Oracle API in the API Specifications section.