Evently is a full-stack event management platform built with a modern, cloud-native microservices architecture. It enables users to discover, create, and manage events with a seamless ticketing experience and secure global payments powered by Stripe.
By moving away from a traditional monolithic approach, Evently provides a highly scalable, event-driven solution designed to handle the complexities of real-time event management.
- 📦 Microservices Architecture – Deconstructed into 5+ specialized services (User, Event, Booking, Payment, Notification). Each service maintains strict Domain Isolation with its own dedicated logical PostgreSQL database, ensuring data autonomy and a clean separation of concerns.
- ⚡ Asynchronous Communication – Orchestrated via Apache Kafka. High-latency operations like email notifications are offloaded to an event bus, ensuring the user experience remains fast and uninterrupted.
- 🛣️ API Gateway & Routing – A centralized entry point built with Spring Cloud Gateway (Port 9000). It provides a clean abstraction layer for the frontend, dynamically routing requests while masking the complexity of the internal microservice network.
- 🔍 Service Discovery – All services dynamically register with a Netflix Eureka server. This enables a self-healing environment where services can scale horizontally or restart without the need for hardcoded IP addresses.
- 🛡️ Stateless JWT Security – Implements robust authentication using JSON Web Tokens (JWT). The Gateway validates the identity once, then securely propagates the user's security context across the entire ecosystem.
evently/
├── app/ # React frontend
│ ├── src/
│ │ ├── api/ # Axios client and API calls
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Route-level page components
│ │ └── constants/ # API routes and constants
│ └── Dockerfile
├── server/ # Spring Boot microservices
│ ├── evently-gateway/ # API Gateway
│ ├── eureka-server/ # Service discovery
│ ├── user-service/
│ ├── events-service/
│ ├── booking-service/
│ ├── payment-service/
│ ├── notification-service/
│ └── pom.xml # Parent POM
├── docker-compose.yaml
└── init.sql # Database initialization
Technical Architecture & Port Map
──────────────────────────────────────────────────────────────────────────
Frontend (React) ──▶ API Gateway (9000) ──▶ [Service Discovery (Eureka: 8761)]
│
├── User Service (8085)
├── Events Service (8082)
├── Booking Service (8081)
├── Payment Service (8084)
└── Notification Service (8083)
│
[ Shared Event Bus ] ◀────────────┴──────────▶ Apache Kafka (9092)
- User Access: Secure registration and login using JWT-based stateless authentication.
- Role-Based Control: Granular access levels for Users vs. Admins.
- Profile Management: Users can manage personal info, view owned tickets, and track followed artists/venues.
- Discovery: Browse events
- Deep Dives: Detailed event views including artist lineups, location info, and real-time availability.
- Admin Tools: Full CRUD capabilities for creating, editing, and managing event listings.
- Stripe Integration: Secure, industry-standard checkout powered by Stripe.
- Promo Engine: Admin-managed promo codes that users can apply at checkout for dynamic pricing.
- Email Service: Automated emails for registration, order confirmations, and updates—processed asynchronously via Apache Kafka.

