Trending
BitFuFu considers abandoning 80MW Ethiopian Bitcoin mine acquisition DCD Studio: Who decides the future of AI compute? with Piotr Tomasik, TensorWave SoleCrypt ups size of planned data center campus in Bizerte, Tunisia Broadcom organizes $63bn deal with Bank of America, Blackstone, Citigroup, and Morgan Stanley to fund Anthropic chip purchases Comms tower collapses in Danville, Illinois, after farming machinery catches guy wire Ferveret’s in-rack immersion cooling deployed on HPC infrastructure at MIT La Caisse snaps up 49.9% stake in Bell Canada’s tower unit DCD Studio: Building data centers in the US with Jan Jenisch, Amrize DCD Studio: Rethinking thermal management for AI scale with Oakley Roberts, Trane 520MW data center planned in Eatonton, Georgia Zocdoc Acquires Sohar Health | Diverge Health Merges with Medical Home Network Oracle will offer Google’s TPU AI chip via OCI Spain revises data center renewable mandate OpenAI applies for federal permit to build portion of Effingham County, Georgia, data center on wetlands – report The Power Challenge Behind Hyperscale AI Expansion

Why State is the Hardest Thing in Software Design

State is the information a system retains that affects its functionality in some way. For example, a website might keep track of users who have logged in. A document editor remembers the current text. A background worker logs which tasks it has completed and which ones are pending. A database stores the records written to it for as long as needed.

Any useful software usually needs to manage state to carry out its intended functionality. The difficulty is keeping the state correct even as requests overlap, servers are added, machines fail, and software changes are deployed.

Often, the common advice is to “make the application stateless”. But this advice needs explanation. It usually means making particular application servers easy to replace while putting their important state elsewhere. It doesn’t signify a complete absence of state. Understanding such a setup requires looking at why state exists, who owns it, and what happens when it becomes unavailable.

In this article, we will look at why state is the hardest thing in software development and the multiple strategies that developers can use to manage it.

 

Join the conversation

Your email address will not be published. Required fields are marked *