Context Deadlines and How to Set Them
Mar 11, 2019Michael Cartmell

Summary
This post details a strategy for configuring timeouts and using context deadlines correctly in Go microservices. It explains the fundamental concept of timeouts, their usefulness in preventing cascading failures, and the dangers of poor configuration. It introduces Go's context package for propagating deadlines and cancellation signals, enabling servers to abandon computation when a deadline is exceeded. The article provides guidance on setting effective timeout values based on SLAs and latency data, and discusses the differences between network timeouts, context timeouts, and asynchronous timeouts.