Skip to content

Rewrite the DAG transmission protocol - #29

Merged
EdSchouten merged 1 commit into
mainfrom
eschouten/20260812-completed-object
Aug 15, 2026
Merged

Rewrite the DAG transmission protocol#29
EdSchouten merged 1 commit into
mainfrom
eschouten/20260812-completed-object

Conversation

@EdSchouten

Copy link
Copy Markdown
Member

The existing protocol has the downside that it only informs whether a DAG has been written fully after the fact. This means that if a client wants to do retries, there is no way it can discard parts of the graph. To address this, we change the protocol as follows:

  • RequestObject has been split up: RequestObjectContents can be called up to once to request the object's contents. FinalizeObject needs to be called exactly once to report whether writing the object and its children has succeeded or not.

  • FinalizeTag has been added to inform a client whether writing a specific tag succeeded.

  • FinalizeDAG has been removed, as clients can simply keep track of the expected number of FinalizeObject and FinalizeTag messages.

With this change implemented, we may start working on a proper buffer layer for bonanza_builder.

The existing protocol has the downside that it only informs whether a
DAG has been written fully after the fact. This means that if a client
wants to do retries, there is no way it can discard parts of the graph.
To address this, we change the protocol as follows:

- RequestObject has been split up: RequestObjectContents can be called
  up to once to request the object's contents. FinalizeObject needs to
  be called exactly once to report whether writing the object and its
  children has succeeded or not.

- FinalizeTag has been added to inform a client whether writing a
  specific tag succeeded.

- FinalizeDAG has been removed, as clients can simply keep track of the
  expected number of FinalizeObject and FinalizeTag messages.

With this change implemented, we may start working on a proper buffer
layer for bonanza_builder.
@EdSchouten
EdSchouten merged commit b37f990 into main Aug 15, 2026
3 checks passed
@EdSchouten
EdSchouten deleted the eschouten/20260812-completed-object branch August 15, 2026 19:19
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