8. Interaction model
Axonex graph interfaces operate through a pipeline that carries two orthogonal channels:
In the simplest case, only the downstream channel is used, and the interaction behaves as a standard continuously updating stream, with no upstream modulation required. When present, upstream modulation integrates into the same execution model in a straightforward manner, rather than introducing a separate interaction pattern.
upstream channel (control / modulation)
downstream channel (data / transformation)
Conceptually:
upstream channel
│
↓
[ adapter node ] (e.g. database, service, or external graph)
│
↓
downstream channel → computation → downstream state
The downstream channel carries data through the pipeline and is transformed by nodes.
The upstream channel carries control or modulation toward the root of the pipeline and is not transformed by nodes.
The adapter node defines the boundary between the graph and an external system. It provides:
- an upstream contract (control entering the external domain)
- a downstream contract (data emitted into the graph)
The adapter does not perform computation itself. It represents a coupling between the graph and an external domain such as a database, service, or another graph.
8.1 Upstream modulation
Upstream inputs are conveyed through the upstream channel and modulate downstream computation as part of normal execution.
These inputs are live and may change over time.
For example:
- an upstream input may define a set of identifiers, such as vehicle plates
- the adapter connects to an external system, such as a vehicle database
- downstream computation produces a stream of records associated with those identifiers
upstream channel (vehicle plates)
│
↓
[ vehicle adapter ] (e.g. database interface)
│
↓
downstream channel (vehicle records) → computation
As upstream inputs change, the adapter reflects those changes into the external system, and downstream output updates as new data is produced.
Downstream outputs are therefore continuously updated projections of current upstream state and internal computation.
input changes → output updates
Upstream inputs may remain static, or be omitted entirely, in which case the interaction behaves as a continuously updating stream without upstream influence.
8.2 Compositional interaction
Because both channels exist within the same pipeline structure, they can be composed:
- upstream inputs may be produced by other pipelines
- downstream outputs may feed into further upstream inputs
This allows interaction patterns such as:
graph A → graph B → graph C
↑ ↓
└───────┘
where pipelines combine to form larger systems while preserving both downstream transformation and upstream control.
These composition patterns are expressed directly in AxL (the graph definition language), where pipelines define both downstream transformation and upstream modulation within a single structure.
8.3 Implication
Interaction in Axonex is:
- continuous rather than discrete
- stateful rather than request-based
- compositional across both data and control paths
This enables systems where:
- downstream computation produces live views
- upstream inputs act as modulating state
- pipelines form interconnected structures rather than isolated calls