# Invocation Join

> Decide for each caller whether a live run already answers its question, joining by reading when one does and starting by declare-then-read ordering when none does.

Record: `algorithms:invocation-join`
Kind: algorithm
Canonical: https://banes-lab.com/ontology/algorithms#algorithms-invocation-join
Closure: https://banes-lab.com/json/records/algorithms/invocation-join/closure

Listed in [Algorithm contracts](https://banes-lab.com/api/records/algorithms.md), after [Convergence Walk](https://banes-lab.com/records/algorithms/convergence-walk.md) and before [Duplicate Disposition Walk](https://banes-lab.com/records/algorithms/duplicate-disposition-walk.md).

## Domain

- [Coordination](https://banes-lab.com/records/algorithms-domain/coordination.md)

## Stage

- [derive](https://banes-lab.com/records/stage/derive.md)

## Axis

- [reasoning](https://banes-lab.com/records/reasoning/axis-reasoning.md)

## Tier

- [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)

## Principle

- [Read-Time Join](https://banes-lab.com/records/architecture/read-time-join.md)

## Math type

- [Logic](https://banes-lab.com/records/reasoning/math-type-logic.md)

## Force

- [Control coordination](https://banes-lab.com/records/force/control-coordination.md)
- [State transaction](https://banes-lab.com/records/force/state-transaction.md)

## Linked from

- [Coordination Surfaces](https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md)
- [The derivation loop](https://banes-lab.com/ontology/reasoning/reasoning-loop-derivation-loop.md)
- [The axes](https://banes-lab.com/ontology/reasoning/the-axes.md)
- [The mathematics](https://banes-lab.com/ontology/reasoning/the-mathematics.md)
- [Domain tiers](https://banes-lab.com/ontology/schema/the-vocabulary-domain-tier.md)
- [The forces](https://banes-lab.com/ontology/schema/the-forces.md)

## Evidence in the code

- [models/invocation.model.md](https://banes-lab.com/source/coordination/models/invocation.model.md.md)
