-
Notifications
You must be signed in to change notification settings - Fork 0
Home
GopherPay is a robust, distributed financial platform designed to handle user accounts, secure money transfers, and real-time transaction history. Built with a microservices-oriented mindset, it ensures high availability, data consistency, and secure communication.
The primary goal of GopherPay is to provide a scalable and reliable architecture for financial applications. It addresses the critical challenges of data atomicity—ensuring money is never lost during transfers—and service decoupling through modern infrastructure.
- Identity Management: Secure user registration, profile management, and authentication.
- Multi-Currency Wallets: Flexible management of balances across various currencies (USD, VND, etc.).
- Reliable Transfers: A dedicated transaction engine that guarantees "all-or-nothing" execution.
- Async Notifications: Real-time user communication managed via a dedicated, asynchronous service.
The system is decomposed into independent core services that communicate through a mix of synchronous APIs and asynchronous message brokers.
- Identity Service: Manages security, password hashing (Bcrypt), and JWT-based authentication.
- Account Service: Handles the CRUD operations for bank accounts and wallet balances.
- Transaction Engine: The "Heart" of the system, responsible for the logic of moving money between users.
- Notification Service (Novu): An asynchronous service responsible for all outgoing user communications.
- Message Broker (Apache Kafka): The backbone that decouples core logic from background tasks and support services.
- Distributed Design: Services are isolated using Docker containers and connected via a shared global network.
- Security First: Implements industry-standard encryption (OpenSSL) and stateless sessions via JSON Web Tokens (JWT).
- Data Integrity: Utilizes Database Transactions to ensure that if a sender's deduction fails, the receiver's credit never occurs.
- Event-Driven: Leverages Kafka to trigger non-blocking background processes, improving system responsiveness.
To learn more about specific parts of the system, please visit the following pages:
- Feature Flow: Deep dive into the signup logic and data flow.
- API Reference: Detailed endpoint specifications for all services.
- Infrastructure Setup: Instructions on Docker networking and Kafka configuration.
- Deployment Guide: Step-by-step guide to starting the system.
*GopherPay is designed for scalability and security