Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ ZENODOarrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Preprint . 2026
License: CC BY
Data sources: ZENODO
ZENODO
Preprint . 2026
License: CC BY
Data sources: Datacite
ZENODO
Preprint . 2026
License: CC BY
Data sources: Datacite
versions View all 2 versions
addClaim

Reactions and the partition: opt-in eventual consistency in actor-native systems

Authors: Rivera, Álvaro Antonio;

Reactions and the partition: opt-in eventual consistency in actor-native systems

Abstract

This paper is an analytic theory contribution in the sense of Gregor's (2006) theory for analyzing (Type I): it identifies a design construct, derives the principles under which it is exercised, and presents an instantiation in production as an existence proof of realizability — not the design-science evaluation of an artifact (Hevner, March, Park, & Ram, 2004), which a companion case-study paper is the venue for. The construct is the developer's pragmatic partition of an event's implied work into a now branch (what the verb's contract promises before responding) and a deferred branch with a placement. The CQRS literature treats eventual consistency as the architecture's defining commitment; this paper argues that for actor-native systems the contract is upside-down — eventual consistency is the shadow of the partition, not the design choice. The partition is exercised through Reactions: not async events under another name, but rules that match a trajectory through the actor's journal, statically compiled against the domain libraries, with typed identifiers propagated across stages. Reactions serve a double purpose — pragmatic deferral and categorical segregation of operational concerns from domain methods, the segregation structurally enforced — and both purposes share one guardian, friction. Three consequences follow when friction is low: a domain library that closes (the primary one), fast verbs, and opt-in eventual consistency. Code references throughout point to the public Puppeteer codebase, whose Reaction primitive instantiates the construct concretely.

Source-code references resolve against commit 6a529c4 of https://github.com/alvaroNCubo/puppeteer (2026-06-21), archived in Software Heritage at: swh:1:dir:463f291ec5e4fa8abef24dc1fe3e46e5a5975739 ;origin=https://github.com/alvaroNCubo/puppeteer ;anchor=swh:1:rev:6a529c45367ca2c32a891a067efb5be3fed589ec Empirical data: the paper03-data.zip file in this deposit contains the raw outputs of the measurements reported in §5.2, §6.1, §6.9 and §3.6 — the BenchmarkDotNet verb-latency report (bdn-6a529c4/: -report.csv/.md/.html plus the run log), the Cue end-to-end latency and exactly-once probe (cue-6a529c4.txt), and the catch-up / no-re-fire probe (catchup-6a529c4.txt) — together with the harness source (lab03-reactions-src/) and a headline.md summary. The harness code (BenchmarkDotNet- and Stopwatch-based) that produced these outputs lives in the labs/lab03-reactions/ directory of the Puppeteer Papers repository (https://github.com/alvaroNCubo/puppeteer-papers) and builds against the Puppeteer runtime at the same commit (6a529c4). Running the harnesses against 6a529c4 reproduces the figures (modulo run-to-run variance on the timing measurements — verb overhead ~0.3–0.4 µs and Cue latency ~1.3 ms, both near BenchmarkDotNet's resolution floor; the exactly-once-per-match and no-re-fire counts are deterministic).

Part of the Puppeteer Papers — a seven-paper series of Gregor (2006) Type I "theory for analyzing" design papers on journaled-program substrates. This is Paper 3. It builds on Paper 1 (anti-porosity) and Paper 2 (program–value separability), and is a self-deposited preprint that has not undergone peer review.

Keywords

reactions, domain purity, choreography, Puppeteer, CQRS, event sourcing, now/deferred partition, actor model, Cue/Job placement, closability, opt-in eventual consistency

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Green