Initializing core — 0%
KineticNucleusKineticNucleus
WebEnterpriseSaaS

Migrating a high-traffic ad platform from JSP servlets to Go

Client — Confidential — NDA clientIndustry — AdTechYear — 2024
Overview

The situation

The client ran a supply-side platform (SSP) that integrated with multiple demand-side platforms (DSPs) over real-time bidding APIs. The existing JSP servlet stack was accurate but couldn't handle the request volume without stacking on more and more servers.

Challenge

What we were solving for

A single VPS running the JSP servlet implementation topped out around 50 requests per second under real ad-auction load, meaning the client was scaling by throwing hardware at the problem rather than fixing the bottleneck — expensive, and it still couldn't keep up during traffic spikes.

Solution

What we built

We re-implemented the request-handling and DSP integration layer in Go, redesigning the concurrency model around the platform's actual traffic pattern instead of porting the Java logic line-for-line. We validated the rewrite with ab and JMeter load testing before it went anywhere near production traffic.

See it

The throughput difference, live

Same VPS, rewritten in Go

What the migration actually changed

~40× throughput

Before

JSP Servlets · single VPS

0 req/s

Saturated — adding servers just to keep up

After

Go · same single VPS

0 req/s

Headroom — same box, no extra hardware

Numbers reflect ab and JMeter load testing on the same single-VPS deployment, not a marketing estimate.

Gallery

A closer look

They rebuilt our supply-side integration on Go and gave us a straight answer on throughput before we committed to anything. It held up under real load, not just the benchmark.
Engineering LeadAdTech / SSP platform (NDA client)

Results

~50 req/s → ~2,000 req/s

Throughput, single VPS

ab + JMeter load testing

Validation method

Phased, zero-downtime cutover

Migration approach

Technologies

GoJSP/ServletsREST APIsLoad Testing (JMeter, ab)
Start a similar project

Have a project worth building right?

Tell us where you're stuck or where you're headed. We'll respond within one business day.