Skip to content

feat: reconstruct remote instance history over the transport#85

Merged
joshua-temple merged 1 commit into
mainfrom
feat/transport-timetravel
May 31, 2026
Merged

feat: reconstruct remote instance history over the transport#85
joshua-temple merged 1 commit into
mainfrom
feat/transport-timetravel

Conversation

@joshua-temple
Copy link
Copy Markdown
Collaborator

Adds distributed time-travel over the gRPC transport. A node hosting durable instances registers a TimeTravelEndpoint (built from a durable Store + machine via DurableTimeTravel), and any node can reconstruct an instance's state as of a recorded step by calling Transport.StateAt(node, id, step) — the owning node runs durable.StateAt read-only and returns the marshaled historical snapshot, which the caller decodes with state.UnmarshalSnapshot for its own types. It is a thin consumer of the existing durable time-travel reader: no service is run, no actor re-instantiated, no effect dispatched. The time-travel service is a separate gRPC service from the actor transport (a node can serve either or both); it reuses the JSON codec and the transport's connection registry. Adds the durable dependency to the transport module (which already carries the network deps); cluster core stays stdlib-only. Tested over bufconn: remote reconstruction at multiple steps, interceptor path, and error propagation. Coverage: transport 92.6 percent. Additive.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple joshua-temple merged commit 1c492eb into main May 31, 2026
10 checks passed
@joshua-temple joshua-temple deleted the feat/transport-timetravel branch May 31, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant