Back to work

Project 01

Bangladesh Cricket Board — Ticketing System

A ticketing platform engineered to stay reliable when thousands of fans try to book at once.

LaravelReactAPIDatabase

Overview

The Problem

Ticket sales for national cricket events can't fail under load — the system has to stay reliable when large numbers of fans try to book at the same time. A ticketing platform that slows down or breaks during a high-demand on-sale directly costs the organization sales and trust.

The Solution

Built high-performance ticketing modules engineered to support thousands of concurrent users, covering the backend logic and the interfaces fans use to browse and book tickets.

My Role

Full-Stack Engineering

Impact

Verified

Thousands of concurrent users supported without the system buckling under load.

Inside the System

How the pieces work together.

Production Architecture Concept
Layer 1 of 7

Users

Fans hitting the platform simultaneously during an on-sale window.

Request Flow

Architecture Concept
Request
Routing
Authentication
Controller
Service / Business Logic
Cache
Database
Response

Database Design

Conceptual Data Model

Users

Relationships

Orders

Purpose

Registered fans who purchase tickets.

When data starts growing

Small Dataset
Proper Indexing
Query Optimization
Caching
Read Scaling
Partitioning

The right strategy at each stage depends on the actual workload — this progression isn't applied wholesale to every project.

Database Performance

Illustrative Comparison

Before

Query

↓ Full Scan

↓ Large Dataset

↓ Slow Response

Optimized

Query

↓ Index

↓ Relevant Rows

↓ Fast Response

Indexing on frequently queried columnsCaching event and availability lookupsQueueing non-critical work out of the request pathPagination on list endpointsSelecting only required columns on hot queries

Traffic Simulator

See how a system like this typically responds as demand grows.

Simulated traffic

Illustrative Simulation — Not Live Traffic

Active app servers

#1#2#3#4

Cache hit rate

40%

Queue activity

15% utilized

Illustrates how the pieces of a system like this would typically respond as demand grows — more application instances come online, caching absorbs a larger share of reads, and queue throughput increases to keep pace with background work.

Explore 100K+ Architecture

100K+ Requests
CDN
Load Balancer
App #1 / #2 / #3
Redis
Database
Queues
Workers

Reference architecture / simulation — not a benchmark of this project's actual infrastructure. It shows how each component keeps any single part of the system from becoming the bottleneck.

What happens when something fails?

What happens when something fails?

Architecture Simulation

Select a failure scenario to see how the architecture is designed to respond.

Security Layer

Recommended Production Pattern
HTTPS
Authentication
Authorization
Validation
Rate Limiting
Business Logic

From Code to Production

Typical Pipeline
Code
Git
CI/CD
Build
Docker
Server
Nginx
Application

Why These Decisions?

Decision

Move non-critical work to a queue

Why?

Keep the booking request path fast during high-demand windows.

Trade-off

Adds infrastructure (queue + workers) and eventual — not instant — consistency for queued actions.

Decision

Cache high-read, low-change data

Why?

Reduce repeated database load from availability checks during traffic spikes.

Trade-off

Cache invalidation and staleness become additional concerns to manage.

Decision

Design for horizontal scaling of the application layer

Why?

Let the system absorb concurrent demand by adding instances rather than relying on one large server.

Trade-off

Requires the application to be stateless, which shapes how sessions and uploads are handled.

What I Actually Built

Verified
  • Built backend ticketing modules in Laravel handling booking logic and data
  • Built React interfaces for browsing events and completing ticket purchases
  • Worked across the application layer to keep the system stable under concurrent demand

Impact

Scale

Thousands of concurrent users

The Engineering Takeaway

Ticketing infrastructure has to be designed for its worst moment, not its average one — concurrency and reliability under simultaneous demand matter more than any single feature.