Skip to main content

Success Story

Event-Driven Ticketing Platform — Billions of Events at Scale

Interconnected microservices processing billions of events per year across 40+ theatre brands in UK and US regions.

5,000+ RPSPeak Traffic Capacity
UK theatre ticketing platform
AWS EventBridgeSQSLambdaDynamoDBTypesenseCloudflare WorkersGitHub ActionsTerraformCloudWatchS3
Billions/Year
Events Processed
100x Reduction
DynamoDB Throttling
40+ UK & US
Theatre Brands
5 in step
Search Indices

Challenge: One of the UK's largest theatre operators needed a scalable event-driven platform to synchronize content, orchestrate deployments, aggregate catalogues, and route traffic across 40+ brands in multiple regions.

Solution: I designed and built the core microservices for content ingestion, deployment orchestration, catalogue aggregation and edge routing, connected via EventBridge and SQS, with 100x reduction in DynamoDB throttling through schedule consolidation.

Result: Platform processes billions of events annually, supports automated deployments across 40+ brands and 4 AWS regions, and keeps five search indices in step with live inventory across millions of catalogue items.

Tech Stack

AWS EventBridgeSQSLambdaDynamoDBTypesenseCloudflare WorkersGitHub ActionsTerraformCloudWatchS3

The Story

When I joined, ticket sales ran on a monolith. A flash on-sale puts tens of thousands of requests a minute through it inside a ten-minute window, content updates propagated synchronously, and a deploy took 45 minutes. That shape caps both throughput and release cadence no matter how much you tune it, so the work was to change the shape rather than the settings.

I ripped the monolith apart into event-driven microservices connected through EventBridge and SQS. I built the content ingestion service from scratch, capturing real-time webhooks from Contentful and Umbraco, normalizes them, and fans out events to downstream consumers using a transactional outbox pattern. 9 specialized content handlers, dual-trigger event emission, and exactly-once delivery guarantees. The deployment orchestrator drove GitHub Actions workflows so that when a brand config changed in the CMS, all dependent repos deployed automatically across 4 AWS regions. No more manual coordination across 40+ brand websites.

The catalogue aggregation layer was where it got interesting. It was hitting DynamoDB throttling hard during peak on-sale windows. The fix was consolidating N performance-level schedules into 1 show-level schedule, which cut throttling by 100x. The service processes billions of events annually, feeding a Typesense search layer that returns results in under 100ms across millions of catalogue items. Blue-green search infrastructure means zero-downtime schema migrations.

On the edge layer, I built a Cloudflare Workers service routing traffic for 15+ Broadway theatre websites. 17 sequential filters processing every request, handling maintenance windows, Apple Pay verification, dynamic redirects, and per-venue configuration. The whole platform now serves 40+ brands across 4 regions. Deploy time went from 45 minutes to under 5. Throttling at peak dropped 100x. The 3am pages still happen, but now its because of actual edge cases, not infrastructure falling apart.

How It Was Delivered

The Delivery Process

See how one senior engineer delivered production-ready results

1

Content Ingestion Service

  • Real-time event capture from headless CMS via webhooks with transactional outbox pattern and dual-trigger event emission.
  • 9 specialized content handlers processing different content types with EventBridge fan-out to downstream consumers.
  • Idempotent event processing with DynamoDB-based deduplication preventing duplicate downstream actions.
2

Deployment Orchestrator

  • Event-driven deployment orchestration that automatically triggers GitHub Actions workflows when brand configurations change in the CMS.
  • Supports 40+ brands across 4 AWS regions with automated infrastructure provisioning.
  • Rollback-safe deployments with state tracking and automatic failure recovery.
3

Catalogue Aggregation Layer

  • 100x reduction in DynamoDB throttling at peak times through schedule consolidation and optimized access patterns.
  • Typesense integration for full-text search across millions of show, venue, and event records.
  • DynamoDB Streams feeding real-time updates to search indices with eventual consistency guarantees.
4

Edge Routing Worker

  • Cloudflare Workers edge routing for 15+ Broadway theatre websites with dynamic origin selection.
  • Edge-level traffic management handling routing logic at the CDN layer for low-latency responses.
  • Supports multiple theatre brands in the US market with per-site configuration.

Final Outcomes

Results

Billions of events processed annually across the catalogue and inventory services
100x reduction in DynamoDB throttling at peak times through schedule consolidation
40+ theatre brands supported across UK and US regions with 4 AWS regions
Five search indices kept in step with live inventory, CMS content and pricing
Eliminated manual deployment coordination across 40+ brands and multiple AWS regions
Retry and dead-letter handling on every consumer, so a failed event is parked rather than lost

Working on something similar?

Book a 15-minute call. You will hear honestly whether this is the right fit.

Book a 15-min Call