Skip to main content

Time Breaks

Scope

The target is states in which assumptions about execution order and concurrency can no longer be maintained.

Definition

Time breaks refers to a state where assumptions regarding execution order, concurrent execution, and retry that were assumed to hold implicitly or explicitly originally are partially collapsed, and situations are observed where processing results cannot be uniquely determined.

Symptoms

  • Even when executing the same processing, results differ depending on execution order
  • States are observed where processing is applied doubly by retry
  • Situations are observed where partially completed states are treated as assumptions by concurrent execution
  • State transitions occur that are inconsistent with temporal sequence relationships

Typical Triggers

  • Asynchronization or parallelization is partially introduced while overall assumptions remain unchanged
  • Operations continue without a shared assumption that retry or resend is safe
  • Situations are observed where execution timing cannot be controlled due to integration with external systems
  • Feature additions continue without idempotency or order guarantees of processing being made explicit

Diagnostic Questions

  • Is it a state where this processing produces the same result no matter how many times it is executed?
  • Is it a state where behavior when execution order is reversed can be explained?
  • Is it a state where partially succeeded states can be detected?
  • Is it a state where it can be asserted that retry is safe?

What This Is Not

  • This is not a problem of choosing concurrency processing models
  • This does not discuss constraints of specific language features or runtimes
  • This does not refer to simple performance problems or response delays

Connections