Welcome to Mint Documentation¶
A production-ready, event-driven microservices wallet system featuring secure authentication, real-time transaction processing, and automated notifications.
Overview¶
Mint is a microservices-based wallet system built with Node.js, TypeScript, and event-driven architecture using RabbitMQ. It demonstrates production-ready patterns for building scalable, distributed systems.
Key Features¶
- ๐ Secure Authentication - JWT with RS256 asymmetric encryption
- ๐ฐ Real-time Wallet Management - Event-driven balance updates
- ๐ Robust Transaction Processing - ACID-compliant with automatic rollback
- ๐จ Smart Notifications - Email alerts for all wallet activities
- ๐ Production API Gateway - NGINX with rate limiting and load balancing
Quick Links¶
-
Getting Started
Install Mint in minutes and run your first transaction
-
Architecture
Learn about the microservices architecture and event-driven design
-
API Reference
Complete API documentation for all services
-
Development
Set up your local development environment
Architecture at a Glance¶
graph TB
Client[Client Application]
Gateway[NGINX Gateway :80]
Auth[Auth Service :4001]
Wallet[Wallet Service :4003]
Transactions[Transactions Service :4004]
Notifications[Notifications Service :4002]
RabbitMQ[(RabbitMQ :5672)]
MongoDB[(MongoDB :27017)]
Client --> Gateway
Gateway --> Auth
Gateway --> Wallet
Gateway --> Transactions
Auth --> RabbitMQ
Transactions --> RabbitMQ
Wallet --> RabbitMQ
RabbitMQ --> Notifications
Auth --> MongoDB
Wallet --> MongoDB
Transactions --> MongoDB
style Gateway fill:#2196F3
style RabbitMQ fill:#FF9800
style MongoDB fill:#4CAF50
Technology Stack¶
| Category | Technologies |
|---|---|
| Runtime | Node.js 22.x, TypeScript 5.x |
| Framework | Express.js 5.x |
| Database | MongoDB 7.x with Mongoose |
| Message Broker | RabbitMQ 3.x |
| API Gateway | NGINX Alpine |
| Authentication | JWT (RS256), Argon2 |
| Validation | Zod |
| Containerization | Docker, Docker Compose |
| Logging | Winston, Pino |
Project Highlights¶
Event-Driven Architecture¶
All service-to-service communication happens through RabbitMQ events, ensuring:
- Loose Coupling - Services are independent and can be deployed separately
- Scalability - Easy horizontal scaling of individual services
- Reliability - Guaranteed message delivery with acknowledgments
- Async Processing - Non-blocking operations for better performance
Security First¶
- RS256 JWT Tokens - Asymmetric encryption for enhanced security
- JWKS Endpoint - Public key distribution for token verification
- HTTP-only Cookies - Protection against XSS attacks
- Argon2 Password Hashing - Industry-standard password security
- Rate Limiting - Protection against brute force attacks
Production Ready¶
- Health Checks - Monitor service availability
- Error Handling - Graceful error responses and logging
- Docker Compose - Simple deployment with container orchestration
- Environment Config - Separate configs for dev/prod environments
- API Documentation - Comprehensive OpenAPI-style documentation
Use Cases¶
Mint's architecture is suitable for:
- Portfolio Projects - Demonstrate microservices expertise
- Learning Platform - Understand event-driven architecture
- MVP Foundation - Build fintech applications quickly
- Interview Preparation - Discuss system design patterns
- Production Template - Base for real-world wallet systems
What's Next?¶
-
Installation
Get Mint up and running in 5 minutes
-
Quick Start
Complete your first transaction flow
-
API Reference
Explore all available endpoints
-
Contributing
Help improve Mint
Support¶
- GitHub Issues: Report bugs or request features
- Documentation: Browse the guides in the sidebar
- Source Code: View on GitHub
Built with by Sreekar Venkata Nutulapati