# Architecture principles whose scope is workflow

> 13 records

This index as JSON: https://banes-lab.com/json/api/facets/architecture/scope/workflow

## Entries

- [Causality](https://banes-lab.com/records/architecture/causality.md): A design rule that every effect records the event that caused it, so its order can be reasoned about.
- [Causal Dependency](https://banes-lab.com/records/architecture/causal-dependency.md): A conceptual representation of one step or event that cannot proceed until another has happened.
- [Directed Acyclic Graph (DAG)](https://banes-lab.com/records/architecture/directed-acyclic-graph.md): A rule or precondition that every dependency points one way and the graph they form has no cycle, so its nodes can be put in topological order.
- [Orchestration](https://banes-lab.com/records/architecture/orchestration.md): A mechanism that runs a multi-step workflow from one coordinator, which calls each step in order and tracks its outcome.
- [Compensating Transaction](https://banes-lab.com/records/architecture/compensating-transaction.md): A mechanism that undoes the business effect of a completed step when a later step of the workflow fails.
- [Traceability](https://banes-lab.com/records/architecture/traceability.md): The degree to which a request, workflow or change can be followed end to end through correlated records.
- [Correlation ID](https://banes-lab.com/records/architecture/correlation-id.md): A mechanism that attaches one identifier to a request and carries it through every call, message and log line the request causes.
- [Causation ID](https://banes-lab.com/records/architecture/causation-id.md): A mechanism that stamps each event with the identifier of the event that caused it.
- [Template Method Pattern](https://banes-lab.com/records/architecture/template-method-pattern.md): A design pattern that fixes the steps of an algorithm in a base class and lets subclasses supply the steps that vary.
- [Command Pattern](https://banes-lab.com/records/architecture/command-pattern.md): A design pattern that wraps a request in an object, so it can be queued, deferred or undone.
- [Dataflow Architecture](https://banes-lab.com/records/architecture/dataflow-architecture.md): A convention of arranging processing as a graph of stages connected by explicit data edges, where a stage runs when its inputs arrive.
- [Atomicity](https://banes-lab.com/records/architecture/atomicity.md): A design rule that the steps of a state change either all take effect or none do.
- [Petri Nets](https://banes-lab.com/records/architecture/petri-nets.md): A conceptual representation of concurrent flow as places holding tokens and transitions that consume and produce them, which can be analyzed for deadlock.
