# `Electric.Replication.TransactionBuilder`
[🔗](https://github.com/electric-sql/electric/tree/%40core/sync-service%401.6.2/packages/sync-service/lib/electric/replication/transaction_builder.ex#L1)

Builds complete transactions from a stream of TransactionFragments.

Takes TransactionFragments containing begin, commit, and changes,
and builds up Transaction structs. Returns complete transactions
when a fragment with a commit is seen.

# `t`

```elixir
@type t() :: %Electric.Replication.TransactionBuilder{
  transaction: nil | Electric.Replication.Changes.Transaction.t()
}
```

# `build`

```elixir
@spec build(Electric.Replication.Changes.TransactionFragment.t(), t()) ::
  {[Electric.Replication.Changes.Transaction.t()], t()}
```

Build transactions from a TransactionFragment.

Returns a tuple of {results, state} where results is a list of
complete transactions, and state is the updated builder state
containing any partial transaction.

# `new`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
