Skip to content

Conversation

@farost
Copy link
Member

@farost farost commented Nov 19, 2025

Release notes: usage and product changes

TODO

Implementation

TODO

farost and others added 10 commits November 19, 2025 12:49
## Release notes: usage and product changes
Introduce cluster support for TypeDB 3.x, featuring server replicas and
the new version message.

## Implementation
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.
## Release notes: usage and product changes
Add server_status message to the raft peering service and rename the old
raft peering messages to adjust to the existing naming conventions.

## Implementation
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
## 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!

---------

Co-authored-by: Ganeshwara Hananda <ganesh@vaticle.com>
Co-authored-by: Ganeshwara Hananda <ganesh@typedb.com>
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.

3 participants