Practical techniques for delivering low latency software.
From first principles to production-ready code, Latency teaches you how to make your software faster at every layer of the stack. You’ll learn what latency really is, how it differs from bandwidth, and why it matters for user experience. Then, guided by practical examples, you’ll apply Little’s Law, design lock-free algorithms, and architect caching systems that scale. You’ll discover how your code runs differently on distributed systems, databases, and operating systems, and understand the common latency-causing issues in each situation.
In Latency you’ll learn how
• Define latency, distinguish it from bandwidth, and understand its impact on user experience • Model performance with Little’s Law and Amdahl’s Law, then measure and visualize delays • Optimize data access with colocation, replication, partitioning, and caching • Accelerate logic with algorithmic improvements, memory tuning, and lock-free concurrency • Minimize delays with asynchronous processing, predictive techniques, and speculative execution
Put simply, latency is the delay between a cause and effect. In practice, too much latency can create problems throughout a software system, ranging from inaccurate calculations and timeouts to impatient users simply abandoning your applications. Latency issues can be challenging to avoid and troubleshoot. This book balances theory with practical implementations, turning academic research into useful techniques you can apply to your projects.
About the technology
From lost microseconds routing server messages to page loads that keep users waiting, latency can kill good software. This one-of-a-kind book shows you how to spot, understand, and fix unwanted latency in your applications and infrastructure.
About the book
Reduce delay in software systems shows you how to troubleshoot latency in existing applications and create low latency systems from the ground up. In it, you’ll discover high-impact fixes for measuring latency and advanced optimizations in memory management, concurrency models, and predictive execution. The tips and tricks, hands-on projects, and personal insights make this book as enjoyable as it is practical.
What's inside
• How to model and measure latency • Organizing application data for low latency • Accelerating your code • Hiding latency
About the reader
For software engineers with a working knowledge of backends. Examples in Rust.
About the author
Pekka Enberg has experience in operating systems, databases, and distributed systems, having worked on the Linux kernel and the Scylla and Turso databases.
Table of Contents
Part 1 1 Introduction 2 Modeling and measuring latency Part 2 3 Colocation 4 Replication 5 Partitioning 6 Caching Part 3 7 Eliminating work 8 Wait-free synchronization 9 Exploiting concurrency Part 4 10 Asynchronous processing 11 Predictive techniques A Further reading
Get a free eBook (PDF or ePub) from Manning as well as access to the online liveBook format (and its AI assistant that will answer your questions in any language) when you purchase the print book
This book does a nice job going over many components in a typical software system—from low-level topics like operating system interrupts all the way up to distributed systems. It gives software engineers a landscape of where latency can come from.
That said, the coverage is fairly high-level throughout. Many sections only scratch the surface, and the book doesn’t really share the author’s real-world problems, trade-offs, or concrete solutions from production systems, providing much less value in applying them. As a result, while reading, I often forgot this was supposed to be a book about “latency”; it felt more like a broad “software systems 101” overview framed through the lens of performance.
I contributed to several review rounds of Latency (Manning), and it’s an excellent, clear guide to understanding how latency behaves across modern systems. It explains why delays propagate, how to reason about them, and offers practical strategies. A concise, essential read for anyone building distributed systems.
It's a good book: clear and good written. All concepts are crisp and nicely organized. But if you're 5-10+ years in intro software engineering, you can safely skip this one. It is just not deep enough. It's broad (honestly, not all chapters are about "latency"), but somewhat shallow.
But it's a good gift for anyone who just started the journey into programming.