Journal

1 min read
Suggest an edit

Overview

The journal records all execution steps.

It is an append-only log.


Purpose

Journal enables:

  • replay
  • debugging
  • recovery

Entry Structure

Each entry records:

  • selected message
  • transition executed
  • state changes

Append Model

J = e1, e2, e3, ...


Replay

State reconstruction:

state = replay(initial_state, journal)


Durability

Journal must:

  • be written atomically
  • survive crashes

Determinism

Replay must produce:

  • identical state
  • identical execution trace