AY.

Ticketing Microservices App

Production-grade event-ticketing platform using a MERN stack, containerised with Docker and orchestrated with Kubernetes. Implements NATS Streaming for event sourcing between services.

Node.jsReactDockerKubernetesMicroservicesNATS

Overview

A production-grade event-ticketing platform demonstrating modern microservices patterns — from service communication to eventual consistency and container orchestration.

Services

| Service | Responsibility | |---|---| | auth | JWT-based registration & login | | tickets | Create, update, delete ticket listings | | orders | Reserve tickets with a 15-minute window | | payments | Stripe integration, publishes payment events | | expiration | Bull/Redis queue to expire unpaid orders |

Infrastructure

  • NATS Streaming for event communication between services
  • Docker for containerisation of every service
  • Kubernetes (local: minikube / prod: GKE) for orchestration
  • Ingress-nginx for routing
  • Skaffold for streamlined local development

Patterns implemented

  • Event Sourcing via NATS
  • Optimistic concurrency control with version fields
  • Per-service MongoDB databases (database-per-service pattern)
  • Common library (@ay/common) published to NPM for shared types and middlewares