Skip to content

Repository files navigation

🎟️ TixVault - High-Concurrency Seat Reservation Engine

Node.js React AWS Terraform

TixVault is a cloud-native ticket booking system designed to handle flash sales and high-traffic events. It uses atomic Redis operations to prevent double-booking and scales automatically on AWS.

🚀 Key Features

  • ⚡ High Concurrency: Redis DECR atomic operations handle 5,000+ concurrent seat reservations.
  • 🧩 Microservices: Decoupled email notifications via AWS SQS.
  • ☁️ Serverless Containers: Deployed on AWS ECS Fargate—no servers to manage.
  • 🏗️ Infrastructure as Code: Entire AWS environment (VPC, ECS, RDS, Redis, ALB) defined in Terraform.
  • 🚦 CI/CD Ready: Automated deployments via GitHub Actions.
  • 🌍 Multi-Region Failover: Route 53 active-passive setup for disaster recovery.

🗺️ Architecture Overview

User (Browser) │ ▼ [Application Load Balancer (ALB)] │ ▼ [AWS ECS Fargate (Node.js API Container)] │ │ │ ▼ ▼ ▼ [ElastiCache] [RDS Aurora MySQL] [SQS Queue] (Redis) (Persistent Orders) (Async Emails)

🛠️ Tech Stack

Layer Technology
Frontend React.js
Backend Node.js, Express.js
Cache Redis (AWS ElastiCache)
Database MySQL (AWS RDS)
Orchestration AWS ECS Fargate
Infra Code Terraform
CI/CD GitHub Actions

📸 Screenshots

1. Live Seat Grid

Seat Grid

2. Successful Booking

Booking

3. Seat Already Taken (Concurrency)

Seat Taken

4. AWS ECS Deployment

ECS Service

5. ECS Rolling Deployment

Deployment

🐳 How to Run Locally

# Clone the repo
git clone https://github.com/YOUR_USERNAME/tixvault.git
cd tixvault

# Start the stack
docker-compose up --build

# Initialize seats (one time)
curl -X GET http://localhost:5000/init

# Open the UI
open http://localhost:3000
☁️ How to Deploy to AWS
bash
# Build and push Docker image
aws ecr get-login-password | docker login --username AWS --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com
docker build -t tixvault-backend ./backend
docker tag tixvault-backend:latest <account-id>.dkr.ecr.us-east-1.amazonaws.com/tixvault-backend:latest
docker push <account-id>.dkr.ecr.us-east-1.amazonaws.com/tixvault-backend:latest

# Deploy with Terraform
cd terraform
terraform init
terraform apply
🧠 Why This Project Matters
Interview Question	How TixVault Answers It
"How do you handle millions of users?"	Horizontal scaling via ECS Fargate + ALB.
"How do you prevent double-booking?"	Atomic Redis DECR ensures only one user gets the seat.
"Why use Docker?"	Ensures identical environments from local to production.
"How do you decouple services?"	SQS separates the API from the email worker.
"How do you manage infrastructure?"	Terraform ensures immutable, version-controlled infrastructure.
🏆 Author
Faizan – Cloud & DevOps Engineer

📧 fs216716@gmail.com

🔗 LinkedIn: https://www.linkedin.com/in/faizan-siddiqui09/

📜 License
Open-source for educational and portfolio purposes.

text

---

### 🚀 Now Push to GitHub

Copy the corrected version above, paste it into your `README.md`, save it (`Ctrl+S`), and run:

```powershell
git add README.md
git commit -m "Added professional README with architecture and screenshots"
git push

About

High-concurrency seat reservation system

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages