Skip to content
webmeister
  • Home
  • Blog

Blog

Articles and notes on software design, Python, and the web.

Explore the state machines reading guide →

2026-10-01

Road to State Machines Part 1 - Designing Systems When the Past Determines What Is Allowed Next

How lifecycle state summarizes an order’s past and determines its allowed next actions, and why recording status alone cannot enforce correctness.

2026-10-01

Road to State Machines Part 2 - But How Do We Prevent Impossible Changes?

Enforce valid order states, invariants, preconditions, and permitted transitions with Python checks that reject invalid changes before mutation.

2026-10-01

Road to State Machines Part III - But How Do We Represent the Entire Lifecycle as One Behavioral Contract?

Represent an order lifecycle as an explicit finite state machine using Python enums and a shared transition table for operations and available actions.

2026-10-01

Road to State Machines Part IV - But How Do We Let Data Influence Transitions Without Turning Every Value into Another State?

Use guards and supporting data to control transitions in an extended finite state machine without multiplying lifecycle states.

2026-10-01

Road to State Machines Part V - But How Does the Machine Wait for Something That Happens Later?

Model asynchronous work with waiting states, commands, events, correlation identifiers, timeouts, and a queue that serializes local reactions.

  • Contact
  • Blog
Crafted by Can Burak Sofyalıoğlu with ❤️