All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ebe-cluster-config.8.6.0-rc1.source-code.topology.proto Maven / Gradle / Ivy

syntax = 'proto3';
package topology_protocol;

import "google/protobuf/timestamp.proto";

option java_package = "io.camunda.zeebe.dynamic.config.protocol";

message GossipState {
  ClusterTopology clusterTopology = 1;
}

message ClusterTopology {
  int64 version = 1;
  map members = 2;
  CompletedChange lastChange = 3;
  ClusterChangePlan currentChange = 4;
  RoutingState routingState = 5;
}

message RoutingState {
  int64  version = 1;
  repeated sint32 activePartitions = 2;
  MessageCorrelation messageCorrelation = 3;
}

message MessageCorrelation {
  oneof correlation {
    HashMod hashMod = 1;
  }

  message HashMod {
    sint32 partitionCount = 1;
  }
}

message MemberState {
  int64 version = 1;
  google.protobuf.Timestamp lastUpdated = 2;
  State state = 3;
  map partitions = 4;
}

message PartitionState {
  State state = 1;
  int32 priority = 2;
  PartitionConfig config = 3;
}

message PartitionConfig {
  ExportersConfig exporting = 1;
}

message ExportersConfig{
  map exporters = 1;
}

message ExporterState {
  EnabledDisabledState state = 1;
  int64 metadataVersion = 2;
  optional string initializedFrom = 3;
}

message ClusterChangePlan {
  int64 id = 1;
  int32 version = 2;
  ChangeStatus status = 3;
  google.protobuf.Timestamp startedAt = 4;
  repeated CompletedTopologyChangeOperation completedOperations = 5;
  repeated TopologyChangeOperation pendingOperations = 6;
}

message CompletedChange {
  int64 id = 1;
  ChangeStatus status = 2;
  google.protobuf.Timestamp startedAt = 3;
  google.protobuf.Timestamp completedAt = 4;
}

message TopologyChangeOperation {
  string memberId = 1;
  oneof operation {
    PartitionJoinOperation partitionJoin = 2;
    PartitionLeaveOperation partitionLeave = 3;
    MemberJoinOperation memberJoin = 4;
    MemberLeaveOperation memberLeave = 5;
    PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
    PartitionForceReconfigureOperation partitionForceReconfigure = 7;
    MemberRemoveOperation memberRemove = 8;
    PartitionDisableExporterOperation partitionDisableExporter = 9;
    PartitionEnableExporterOperation partitionEnableExporter = 10;
    PartitionBootstrapOperation partitionBootstrap = 11;
  }
}

message CompletedTopologyChangeOperation {
  TopologyChangeOperation operation = 1;
  google.protobuf.Timestamp completedAt = 2;
}

message PartitionJoinOperation {
  int32 partitionId = 1;
  int32 priority = 2;
}

message PartitionLeaveOperation {
  int32 partitionId = 1;
}

message PartitionReconfigurePriorityOperation {
  int32 partitionId = 1;
  int32 priority = 2;
}

message PartitionForceReconfigureOperation {
  int32 partitionId = 1;
  repeated string members = 2;
}

message PartitionDisableExporterOperation {
  int32 partitionId = 1;
  string exporterId = 2;
}

message PartitionEnableExporterOperation {
  int32 partitionId = 1;
  string exporterId = 2;
  optional string initializeFrom = 3;
}

message PartitionBootstrapOperation {
  int32 partitionId = 1;
  int32 priority = 2;
}

message MemberJoinOperation {}

message MemberLeaveOperation {}

message MemberRemoveOperation {
  string memberToRemove = 1;
}

enum State {
  UNKNOWN = 0;
  JOINING = 1;
  ACTIVE = 2;
  LEAVING = 3;
  LEFT = 4;
  BOOTSTRAPPING = 5;
}

enum ChangeStatus {
  CHANGE_STATUS_UNKNOWN = 0;
  IN_PROGRESS = 1;
  COMPLETED = 2;
  FAILED = 3;
  CANCELLED = 4;
}

enum EnabledDisabledState {
  ENABLED_DISBALED_UNKNOWN = 0;
  ENABLED = 1;
  DISABLED = 2;
}






© 2015 - 2024 Weber Informatics LLC | Privacy Policy