challenge yape - solution #458
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Description
This PR implements a based on microservices solution using NestJS, Kafka, Docker, GraphQL, and Prisma to manage transactions in a secure and scalable way.
📌 Objective
Develop a distributed system to process transactions efficiently and with anti-fraud validations.
🛠 Solution Architecture
Three microservices were implemented:
Client-Gateway (GraphQL API):
ExternalTransaction (Transaction Management):
AntiFraud (Transaction Validation):
🔍 How to Test
1️⃣ Clone the Repository
git clone https://github.com/yaperos/app-nodejs-codechallenge.git cd app-nodejs-codechallenge2️⃣ Start Services with Docker
This will start Kafka, PostgreSQL, and the three microservices.
Note: Environment variables are already set.
3️⃣ Access GraphQL Playground
Once the services are running, you can access http://localhost:3000/graphql to test the Client-Gateway endpoints.
4️⃣ Test with GraphQL
Example mutation to initiate a transaction: