view example_clusterrpc/proto/consensus.proto @ 38:7a6db8262f43

Initial prototype of clusterrpc example
author Lewin Bormann <lbo@spheniscida.de>
date Thu, 25 Jul 2019 16:37:06 +0200
parents 7f084f715214
children
line wrap: on
line source

syntax = "proto2";
package proto;

message Error {
    optional string error = 1;
    optional string type = 2;
}

message Change {
    optional bytes change = 1;
}

message Member {
    optional string address = 1;
}

message Version {
    required uint64 instance = 1;
    required uint64 sequence = 2;
}

message GenericResponse {
    required bool accepted = 1;
    optional Error error = 2;
    optional uint64 instance = 3;
}

message PrepareRequest {
    required uint64 instance = 1;
    required Member master = 2;
    required string cluster = 3;
}

message PrepareResponse {
    required uint64 instance = 1;
    optional Error error = 2;
}

message AcceptRequest {
    required Version version = 1;
    repeated Change changes = 2;
    required string cluster = 3;
}

message AddMemberRequest {
    required Version version = 1;
    required Member member = 2;
    required string cluster = 3;
}

message RemoveMemberRequest {
    required Version version = 1;
    required Member member = 2;
    required string cluster = 3;
}

message StartParticipation {
    required Version version = 1;
    required string cluster = 2;
    required Member self = 3;
    required Member master = 4;
    repeated Member members = 5;
    required bytes snapshot = 6;
}

message SubmitRequest {
    repeated Change changes = 1;
    required string cluster = 2;
}