---
title: 'Gatling: Rapid-Fire Consensus via Parallel Composition'
url: https://www.emergentmind.com/topics/gatling
type: topic
---

# Gatling: Rapid-Fire Consensus via Parallel Composition

Gatling is an atomic broadcast protocol that composes multiple parallel instances of a black-box atomic broadcast protocol and deterministically interleaves their outputs into a single global log, with the aim of reducing the effective inter-proposal time below the network delay while preserving the component protocol’s confirmation time [2606.18220]. In the formulation of "Gatling: Rapid-Fire Consensus from Parallel Composition," consensus protocols are treated as the core of blockchains and other replicated state machines, where performance in fault-free executions is driven by good-case transaction latency: the interval between a transaction becoming known to all nodes and its confirmation by the consensus protocol. Gatling addresses the open question of whether inter-proposal time can be reduced below the state-of-the-art of one network delay under rotating leader schedules, and the paper states that it can achieve arbitrarily small inter-proposal times by parallel composition and staggered proposal schedules [2606.18220].

## 1. Problem setting and performance objective

The paper situates Gatling in partially-synchronous BFT protocols such as PBFT, HotStuff, and Simplex, where block or proposal times are bounded below by the network delay $d$ because each leader must see—or safely assume—a quorum on the previous proposal before issuing the next [2606.18220]. This yields an inter-proposal time $\Delta \ge d$, which in turn produces a lower bound on good-case transaction latency of roughly $3 \cdot d + \Delta/2$, with the example decomposition given as $3 \cdot d$ for confirmation plus $\Delta/2$ average wait for inclusion.

The stated point of departure is that prior work had already established tight lower bounds on confirmation latency that modern protocols already achieve, whereas reducing inter-proposal time below one network delay remained open [2606.18220]. Gatling therefore does not attempt to improve the underlying confirmation-latency floor; instead, it targets the waiting time before a transaction enters a proposal. This framing is central to the protocol’s design: the system leaves the component consensus logic unchanged and restructures the proposal schedule at the composition layer.

A plausible implication is that Gatling should be read less as a replacement for existing atomic broadcast protocols than as a wrapper construction for improving proposal cadence when the base protocol already has near-optimal confirmation latency. The paper explicitly supports this reading by describing the construction as compatible with off-the-shelf component protocols and by emphasizing that the component protocol need not be fine-tuned for minimum latency [2606.18220].

## 2. Parallel composition and staggered schedules

Gatling assumes a component atomic-broadcast protocol $\Pi$ that runs in slots $s = 1,2,\ldots$ with a fixed proposal schedule every $\Delta$ time, guarantees good-case $(\Delta, T_{\mathrm{conf}})$ latency, and exports the interface `broadcast(tx)` and `deliveredAnnotatedLog() → sequence of (tx, slot) pairs` [2606.18220]. Gatling$(I = \Pi, k, \Delta)$ then runs $k$ independent copies $I_1,\ldots,I_k$ of $\Pi$.

The core notation is explicit in the paper:

- $\Delta$: inter-proposal time of each component instance
- $d$: worst-case network delay
- $k$: number of parallel instances
- $E = \Delta/k$: Gatling’s global inter-proposal time
- $T_{\mathrm{conf}}$: confirmation latency of $\Pi$, typically $3 \cdot d$ [2606.18220]

Instance $j \in \{1,\ldots,k\}$ uses proposal times
$$
T_{\mathrm{prop}}^{(j)} = \{ t_0 + (s-1)\cdot \Delta + (j-1)\cdot E \mid s = 1,2,\ldots \},
$$
so that across all $k$ instances proposals occur every $E$ time [2606.18220]. This staggered schedule is the mechanism by which Gatling converts $k$ component instances, each spaced by $\Delta$, into a composite system with effective spacing $\Delta/k$.

Input handling is equally direct. When a node receives a transaction from its local client at time $t$, it immediately calls `broadcast(tx)` in every instance $I_j$ [2606.18220]. The paper states that the transaction therefore appears in the next proposal of whichever instance’s scheduled slot arises first, at worst $E$ time later. In the fault-free case, this leads to good-case transaction latency $\Delta/k + T_{\mathrm{conf}}$, and since $k$ can be made arbitrarily large, $\Delta/k \to 0$ while the confirmation component remains fixed [2606.18220].

This design suggests a decomposition of latency into two independent terms: inclusion delay controlled by cross-instance staggering, and confirmation delay inherited from the base protocol. The paper’s formal good-case statement is consistent with that separation.

## 3. Deterministic interleaving and global-log construction

The outputs of the $k$ component instances are merged by a deterministic interleaving rule [2606.18220]. Let $A_j[s]$ be the payload, possibly empty, that instance $j$ decides for slot $s$. Gatling computes the delivered log using
$$
s^* \leftarrow \max \{ s \mid \text{for every instance } j \le k, \text{ slot } s \text{ is decided} \}
$$
and
$$
k^* \leftarrow \max \{ j \mid \text{instance } j \text{ has decided slot } s^* + 1 \}.
$$
If $k^* = 0$, the log is
$$
\mathrm{concat}_{i=1..s^*}(A_1[i] \parallel A_2[i] \parallel \cdots \parallel A_k[i]),
$$
and otherwise the same prefix is extended by
$$
(A_1[s^*+1] \parallel \cdots \parallel A_{k^*}[s^*+1]).
$$
In words, confirmed blocks are interleaved by ascending slot and then by ascending instance index [2606.18220].

The paper also gives a compact index-based description. If
$$
A_j = \langle A_j[1], A_j[2], \ldots \rangle,
$$
then the global index is
$$
M(s,j) = (s-1)\cdot k + j.
$$
The $M$-th entry of the Gatling log is block $A_j[s]$, where $(s,j) = \mathrm{divmod}(M,k)$ using 1-based arithmetic [2606.18220]. Equivalently, the delivered log is
$$
\langle A_1[1], A_2[1], \ldots, A_k[1], A_1[2], \ldots, A_k[2], \ldots, A_1[s^*], \ldots, A_k[s^*], A_1[s^*+1], \ldots, A_{k^*}[s^*+1] \rangle.
$$

A block $A_j[s]$ is confirmed by Gatling as soon as three conditions hold: $I_j$ has decided slot $s$; all other instances have decided all slots less than $s$; and for instances with lower index $\ell < j$, slot $s$ has also been decided [2606.18220]. The significance of this rule is that all honest nodes produce exactly the same merged log because each $A_j$ is itself consistent across nodes.

A common misconception would be that parallel instances could introduce nondeterministic cross-instance races. The deterministic interleaving rule addresses precisely that concern: concurrency is used for proposal generation, but not for ambiguity in log order.

## 4. Security, liveness, and good-case latency

The paper’s first main theorem states: if $\Pi$ is a secure atomic broadcast protocol with safety and liveness up to $f$ faults, then Gatling$(I,k,\Delta)$ is also secure, with the same safety, liveness, and fault tolerance [2606.18220]. The construction therefore preserves the component protocol’s fault model rather than redefining it.

The second main theorem gives the good-case latency guarantee. If $\Pi$ satisfies good-case $(\Delta, T_{\mathrm{conf}})$ latency under partial synchrony with worst-case round length $d$, then Gatling achieves good-case latency with inter-proposal time $\Delta/k$ and confirmation time $T_{\mathrm{conf}}$ [2606.18220]. In particular, once GST has passed and all nodes are honest, any transaction arriving by time $t$ enters some instance’s next proposal within $\Delta/k$ time and is then confirmed within $T_{\mathrm{conf}}$ time.

The importance of this theorem is narrowly specified. Gatling does not claim to reduce confirmation time below the lower bounds already met by modern protocols; rather, it pushes the proposal rate so that the total latency approaches the confirmation-latency floor [2606.18220]. In the notation of the paper, the fault-free latency becomes
$$
\Delta/k + T_{\mathrm{conf}}.
$$
Since $k$ can be made arbitrarily large, the inclusion term can be driven toward zero.

The paper’s broader takeaway is that parallel composition and staggered proposals break the traditional $\Delta \ge d$ bound on inter-proposal time, allowing sub-$d$ proposals while retaining the base protocol’s confirmation behavior [2606.18220]. This suggests that the conventional coupling between leader rotation frequency and network delay is not fundamental once one permits multiple concurrently running instances and deterministic post hoc merging.

## 5. Head-of-line blocking and the optimal number of instances

The principal cost of the construction is head-of-line blocking [2606.18220]. If instance $j$ fails to decide a slot promptly, for example because its leader crashes, that slot becomes empty after $T_{\mathrm{conf}}$, but Gatling must still wait for that empty-slot decision before appending later blocks from other instances in the same global turn. Faster proposal spacing therefore creates an opposing pressure: more instances reduce $\Delta/k$, but they also increase exposure to stalls at merge points.

To analyze this tradeoff, the paper models the decision time $D_m$ of the $m$-th global proposal as i.i.d. with CDF $F$, under global spacing $E = \Delta/k$ [2606.18220]. The probability that the $m$-th proposal is appended to the Gatling log within time $t$ after issuance is
$$
H_E(t) = \prod_{j=0}^{\infty} F(t + j \cdot E).
$$
By the survival-integral formula, the steady-state expected append delay is
$$
\int_0^\infty (1 - H_E(t))\,dt,
$$
and adding the average inclusion wait $E/2$ yields total latency
$$
L(E) = E/2 + \int_0^\infty \left[1 - \prod_{j=0}^{\infty} F(t + jE)\right]dt.
$$

For a simple stochastic model in which each decision attempt, costing $T_{\mathrm{conf}}$, succeeds with probability $s$ and fails with probability $p = 1-s$, the paper approximates $F$ by a shifted exponential:
$$
F_p(t) =
\begin{cases}
0 & (t < T_{\mathrm{conf}}), \\
1 - p \cdot e^{-\alpha (t - T_{\mathrm{conf}})} & (t \ge T_{\mathrm{conf}}),
\end{cases}
$$
with
$$
\alpha = -\ln p / T_{\mathrm{conf}}.
$$
Letting $q = e^{-\alpha E}$, the paper states that one can show, using $q$-Pochhammer notation,
$$
H_E(T_{\mathrm{conf}} + u) = (p \cdot e^{-\alpha T_{\mathrm{conf}}}; q)_\infty,
$$
and obtains a closed-form characterization of the unique optimum $E^*$, equivalently $k^* = \Delta/E^*$, in Theorem 5.1 [2606.18220]:
$$
E^*(s) = - T_{\mathrm{conf}} / \ln q^*,
$$
where $q^*$ is the unique root in $(0,1)$ of
$$
\int_0^1 [1 - (p \cdot x; q^*)_\infty]\,dx
=
\sum_{j=1}^{\infty} \frac{p q^{*j}}{1 - p q^{*j}}.
$$

The numerical conclusion reported in the paper is that $E^* \to 0$ as $s \to 1$, with $k^* \to \infty$; for lower reliability $s$, one uses smaller $k^*$ to balance head-of-line blocking against reduced $\Delta/k$ [2606.18220]. This is the main qualification to the otherwise asymptotic statement that inter-proposal time can be made arbitrarily small: the best operating point depends on reliability, not only on nominal network delay.

## 6. Predictable validity and protocol variants

The paper states that Gatling as described sacrifices predictable validity when $\Delta/k < d$ and the leader rotates every slot, because leaders cannot validate transactions on-chain before proposing [2606.18220]. This is the paper’s most explicit caveat. The issue is not safety or liveness of the merged log, but the ability of proposers to rely on a fully propagated and validated chain prefix when constructing state-dependent blocks.

Two mitigations are given, both under slowly rotating leader schedules with windows of consecutive slots per leader and inter-window gaps [2606.18220].

The first is the **Empty-Blocks Variant**. It designates disjoint time windows of length at least $d$ in which one leader issues up to $k$ proposals at spacing $E < d$, and inserts gaps of length at least $d$ between windows during which the same or a special proposer issues empty proposals [2606.18220]. The stated result is that the gap of $d$ empty blocks ensures that no real blocks are proposed until the previous window’s blocks have fully propagated, so each real proposer sees a correct prefix and can validly build on it. The proof sketch says that the $d$-length gap ensures that any real block in window $q$ has been delivered to the next window’s leader before it issues a real proposal.

The second is the **Subprime-Blocks Variant**. It introduces two tiers of block space: prime blocks in windows, which are state-sensitive, with DeFi transactions given as the example; and subprime blocks in gaps, which are state-independent, with data blobs given as the example [2606.18220]. Consensus still merges windows and gaps by slot and index, but the execution layer reorders each window-gap pair so that all prime blocks of window $s$ are executed before the subprime blocks of gap $s-1$. The stated result is that prime-block proposers always build on an up-to-date prefix, since they precede the gap in execution, and subprime blocks need no validity checks.

These variants clarify an important distinction. Gatling’s baseline construction is about ordering and latency; predictable validity concerns state-dependent proposal formation under rapid leader rotation. The paper’s response is therefore not to alter the core merge rule, but to structure time into windows and gaps so that propagation and validation requirements can be reintroduced where needed [2606.18220].

## 7. Experimental evaluation and empirical operating regimes

The experiments were run on a global 10-node cluster with nodes in London, Tokyo$\times 3$, Singapore$\times 3$, Dallas$\times 2$, and Miami [2606.18220]. The component protocol was Simplex, configured with per-instance $\Delta = 500$ ms, leader-timeout $= 225$ ms, notarize-timeout $= 375$ ms, and message delays up to approximately $d \approx 110$ ms.

In the good case with $0\%$ drops, the paper reports that the inter-proposal time $E = \Delta/k$ falls from $500$ ms at $k=1$ to approximately $50$ ms at $k=10$, confirmation time stabilizes at approximately $197$ ms, approximately $3 \cdot d$, and total latency bottoms at approximately $214$ ms around $k=15$--$20$, followed by small jitter [2606.18220]. This empirical profile matches the theoretical decomposition: confirmation latency remains at the component protocol’s floor, while inclusion delay decreases with larger $k$.

With proposal-drop rates $p = \{1\%, 5\%, 10\%\}$ used to emulate failures, the latency curves $L(k)$ exhibit a clear U-shape: decreasing for small $k$ because proposals are faster, then increasing for large $k$ because head-of-line blocking becomes dominant [2606.18220]. The reported optima are summarized below.

| Proposal-drop rate | Optimal $k^*$ | Latency |
|---|---:|---:|
| $1\%$ | $9$ | $\approx 244$ ms |
| $5\%$ | $4$ | $\approx 296$ ms |
| $10\%$ | $3$ | $\approx 337$ ms |

The paper also compares Gatling with single-instance and state-of-the-art baselines [2606.18220]. Simplex alone, with $\Delta = 500$ ms, yields latency of approximately $700$ ms. Hydrangea++/Moonshot, with $\Delta = d \approx 110$ ms, yields approximately $(3 \cdot d + 0.5 \cdot \Delta) \approx 382$ ms. Gatling at $k=9$ with $1\%$ drops yields $\Delta/k \approx 55$ ms and latency approximately $(3 \cdot d + 0.5 \cdot 55) \approx 244$ ms.

The sensitivity result reported is that as network reliability $s$ increases, the optimal $k^*$ also increases, because head-of-line blocking becomes rarer [2606.18220]. Even with round trips of approximately $110$ ms, Gatling rotates leaders every much less than $50$ ms among $k$ instances. The paper’s overall conclusion is that the construction is fully closed-box, composable with pipelining, speculative fast paths, and responsive designs, and can achieve end-to-end latencies well below what any single-instance protocol can [2606.18220].

Source: https://www.emergentmind.com/topics/gatling