Skip to content

Conversation

@farost
Copy link
Member

@farost farost commented Nov 17, 2025

Release notes: usage and product changes

Reorganize Raft service's request messages to mirror the structure of TypeDB service's methods. Additionally, optionalize the Server message to allow returning pure Raft Agent id without other server information available for Clustered operations (in case the replica is not available).

Implementation

I just did it!

farost and others added 8 commits November 19, 2025 14:38
Introduce cluster support for TypeDB 3.x, featuring server replicas and
the new version message.

Remove database replicas. Instead, add server replicas (by extending the
usual `Server` message) with a similar set of fields.

Instead of adding a `is_primary` flag, introduce an extensible enum
`ReplicaType` for more granular split between primary and supporting
nodes.

To reduce the network overhead, this new information is provided in the
initial server's connection response.
Split the protocol into 3 services:
* TypeDBService (contains common TypeDB logic): server, database, user,
and transaction management, etc.
* TypeDBClusteringService (contains TypeDB logic regarding clustering):
replica registration, server status.
* RaftService (contains Raft logic): replication operations.

Split the old RaftPeeringService into TypeDBClusteringService and
RaftService.

Move separate services and their implementation files into separate
subpackages.

Rename methods. Introduce `ServersGet` method for single server status
retrieval. Introduce `registration` method to verify the replica
registration operation before submitting it to Raft.
Add protobuf schema for Raft's 'state mutation request'. The schema
defines how the data is transported over the network and stored in the
Raft log.

- Add a protobuf definition for State Mutation Request
- Create a mock RPC endpoint to handle that message as a hack to get the
code generator to work
@farost farost force-pushed the cluster-support-prealpha-polish-v1 branch from 7653c86 to fdb613a Compare November 19, 2025 14:53
@farost farost merged commit 065cb7e into typedb:cluster-support-feature-branch Nov 19, 2025
2 checks passed
@farost farost deleted the cluster-support-prealpha-polish-v1 branch November 19, 2025 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants