Skip to content

Welcome to Mint Documentation

A production-ready, event-driven microservices wallet system featuring secure authentication, real-time transaction processing, and automated notifications.

Node.js TypeScript RabbitMQ MongoDB Docker License


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

  • Getting Started


    Install Mint in minutes and run your first transaction

    Installation Guide

  • Architecture


    Learn about the microservices architecture and event-driven design

    Architecture Overview

  • API Reference


    Complete API documentation for all services

    API Docs

  • Development


    Set up your local development environment

    Developer Guide


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

    Start Here

  • Quick Start

    Complete your first transaction flow

    Try It

  • API Reference

    Explore all available endpoints

    View APIs

  • Contributing

    Help improve Mint

    Contribute


Support