Nov 2026
9 Mon
10 Tue
11 Wed
12 Thu
13 Fri 09:00 AM – 06:00 PM IST
14 Sat 09:00 AM – 06:00 PM IST
15 Sun
Sonakshi
Submitted Oct 9, 2026
One-line summary
A production case study of diagnosing a high-throughput Scala microservice that struggled under large, realistic workloads—and how profiling, runtime diagnostics, and workload analysis helped us identify the actual bottlenecks and improve throughput and stability.
Performance problems in distributed systems rarely have a single obvious cause.
In our case, a production microservice was processing a high volume of events with increasingly large payloads. As workload complexity increased, we started seeing performance and scalability issues. The initial symptoms could easily have led us toward the usual solutions: add more resources, increase concurrency, tune the JVM, or change batch sizes.
But those approaches only addressed symptoms.
The real challenge was figuring out where the system was actually spending its CPU, memory, time, and concurrency budget.
This talk walks through the investigation—from the initial production symptoms to profiling, identifying unexpected bottlenecks, testing hypotheses, evaluating failed approaches, and implementing targeted changes.
The goal is to show a practical, repeatable approach to performance engineering in production systems rather than a collection of JVM tuning tips.
Intermediate / Advanced
Attendees will learn:
The session will cover a real production investigation, including:
The focus will be on the engineering investigation and decision-making process, not just the final solution.
This work came from diagnosing and optimizing a production-grade Scala microservice handling high-throughput workloads and large payloads.
Our first instinct was to look at resource allocation, concurrency, batching, and JVM behavior independently.
Some changes improved individual metrics but didn’t materially solve the throughput problem. More importantly, optimizing one stage of the pipeline often exposed another bottleneck downstream.
This taught us that performance tuning in a distributed pipeline is rarely about finding one slow function.
We had to move toward an end-to-end approach:
Workload → ingestion → processing → concurrency → JVM → I/O → persistence
and continuously validate each hypothesis with measurements.
We would start profiling and establishing a performance baseline much earlier.
Instead of asking:
“What should we tune?”
we would ask:
“Where is the system spending its CPU, memory, time, and concurrency budget?”
We would reproduce realistic workloads, establish measurable baselines, profile under load, form hypotheses from the evidence, make one targeted change at a time, and benchmark again.
The process becomes:
Measure → Hypothesize → Profile → Change → Benchmark → Validate
We weren’t optimizing for throughput alone.
We considered:
The objective was predictable throughput and system stability under realistic production workloads, rather than maximizing a single benchmark number.
The investigation provides a practical framework that can be applied to other high-throughput services.
Attendees can use it to:
The broader lesson is that performance engineering is an investigation discipline, not a bag of tuning parameters.
Production experience
The session is based on a real production engineering investigation and subsequent performance improvements to a high-throughput microservice.
#rootconf #performanceengineering #scalability #sre #observability #distributedSystems #microservices #jvm #scala #profiling #productionengineering #highthroughput #devops #infrastructure #casestudy
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}