Package io.github.tobyjamesclements.parsley.api


package io.github.tobyjamesclements.parsley.api
The declaration surface: what an application writes.

An application declares Channel typed topics, Store typed stores, and one ProcessDefinition per process. Logic is a Handler, which receives a Delivery and returns Effects.

A handler is given no producer, no timer and no clock. Everything it changes travels back through its return value, which is what allows state, sends and read positions to commit in one transaction.

See Also:
  • Class
    Description
    Channel<K,V>
    A typed topic a process receives from or sends to.
    Where a process begins reading a channel it has no committed position for.
    One message, established as causally deliverable and handed to application logic.
    Everything one step changes: the messages it sends and the state it writes.
    Accumulates sends and writes.
    One message to send.
    One change to application state.
    Handler<K,V>
    Application logic for one channel of one process.
    The one spelling of Kafka's topic-name rule.
    A running set of processes, each executing under causal delivery order.
    Broker connection, application identity and the tuning Parsley leaves open.
    Accumulates configuration, rejecting anything that would weaken the guarantee.
    One process: the channels it receives, the channels it sends on, and the stores it owns.
    Accumulates the channels and stores of one process.
    A received channel and the logic that handles it.
    The state of one process at a moment in time.
    Lifecycle state of a process.
    Read access to the stores a process declared.
    Store<K,V>
    A typed key-value store a process reads and writes.
    The delivery state of one task of a process: what it holds, what each hold is waiting for, and how much causal metadata it carries.
    One cause a held message is waiting for.
    One channel with held messages.