In a reactive chain, agents do not call each other directly and there is no central orchestrator deciding what runs next. Instead, each agent publishes an event when it finishes work, and other agents have registered subscriptions that fire when they receive a matching event. The chain emerges from the subscription topology rather than being explicitly programmed.
This pattern is resilient to partial failures. If a reviewer agent is temporarily unavailable when a pr_created event fires, the event waits in the bus. When the reviewer agent comes back online, it picks up the pending event and continues. In a synchronous sequential pipeline, the entire pipeline would be blocked.
Reactive chains can also branch and merge naturally. A pr_created event might trigger both a reviewer agent and a security scanner agent in parallel. A pr_approved event from the reviewer and a scan_passed event from the scanner might both be required before the release manager agent fires. This AND-join logic is expressed as a subscription condition rather than requiring explicit branching code.