Concurrency

Current operational environments are typically distributed:

  • composed by multiple systems.

  • distributed information/resources.

  • distributed clock.

Algorithms are frequently developed as actions that use those resources.

  • Commonly mapped to sequential actions.

However... interactions/side effects between systems can make some “naive“ assumptions false.

  • Information is available on demand.

  • Writing to an object makes it available to other components.

  • Time flows in a single direction.

Even if algorithms account for the distributed execution, side effects may be present.

  • Variable access latency.

  • Variable execution paths.

  • Variable object metadata.

  • Variable locks.

Side effects can affect execution or disclose information between domains.

  • How an algorithm is implemented, what it is doing.

  • Keys used.

  • Users active.

Last updated