Implementing Transactions in Raft
Overview
OpenBao, like its upstream, favors the [raft
internal storage engine][raft].
While more complex than relying on a database for replication, this storage
engine allows us to have lower latency on read operations, because it uses
a [local K/V implementation][bbolt] based on [B+-trees][btree]. For workloads
with low writes but high reads (typical of most uses of K/V secrets), this
trade off allows for the best performance.
An earlier [blog post][blog-transactions] talked about the availability of
transactions in the [main
branch][openbao-main], this post will focus on
the technical details of implementing transactions.