Challenge Overview
Welcome to “Poseidon LPC - Microservices API Design Challenge”. In this challenge, we would like to create the design for backend microservices service API which will be used by the Poseidon Mobile SDK.
PROJECT BACKGROUND
The objective is to build an SDK for the Loyalty Payment Card(LPC) for our client. This SDK will be used by LPC’s clients to build the LPC mobile app.
So the SDK will provide all required functionalities from authentication to payment processing, reward management, etc.
TECHNOLOGY STACK
-
Swagger OpenAPI 3.0
-
Database ERD (DynamoDB)
REQUIREMENTS
-
The LPC backend system is a multi-tenant backend that can allow many clients to use this system. This should be taken into account in API and database design.
-
In this challenge we will provide the below docs for your reference
- Poseidon API Architecture View.pdf
- This gives you the overview of the Poseidon API Architecture
- Components Design.pdf
- This gives you the data dictionary and key identifiers involved and what we think is the services and its boundaries, we are looking for your suggestions to refine them.
- Services Design Canvas.pdf
- Third Party Payment Provider APIs (provided in the forum)
- This gives the WSDL files of the third party payment provider APIs. This has most of the APIs but may not be complete. Refer to these files to know what inputs will be required and the response from these APIs.
- Poseidon API Architecture View.pdf
- The current LPC payment Swagger file will be provided in the forum
- ���SQL (Postgresql) will also be provided in the forum. It must be converted and updated to DynamoDB
-
We want you to create the API design for the below micro-services
- Registration Service
- Customer Service
- Card Service
- Wallet Service
- Loyalty Service
- Privacy Service (To view and update Privacy/Record of processing activities[ROPA]/Terms & Conditions)
-
For card and customer services, if the endpoints don’t have a corresponding SOAP WSDL file please ignore it
-
For registration and customer create the following properties should be treated as required:
- First and last names
- Address
- Birthdate
- Mobile phone
- Passport���
- The swagger files will be used by the Prism tool (https://stoplight.io/open-source/prism/). Therefore, examples and responses should be properly modeled for that
Final Submission Guidelines
Please provide the below docs.
-
Swagger OpenAPI 3.0 file - YML format
-
Database ERD file for DynamoDB
-
Updated Design Canvas for each of the services [Word doc is fine]