Packages
EventStore-compatible gRPC API server for ExESDB event store clusters. Provides complete stream operations, real-time subscriptions, transaction support, and comprehensive monitoring capabilities with high performance and production-ready reliability.
Current section
Files
Jump to
Current section
Files
priv/protos/EventStoreService.proto
syntax = "proto3";
package reckondb.client.messages;
import "ClientAPI/ClientMessageDtos.proto";
// ReckonDB EventStore gRPC Service
// This service exposes the main EventStore operations via gRPC
service EventStore {
// Write events to a stream
rpc WriteEvents(reckondb.client.messages.WriteEvents) returns (reckondb.client.messages.WriteEventsCompleted);
// Read a single event from a stream
rpc ReadEvent(reckondb.client.messages.ReadEvent) returns (reckondb.client.messages.ReadEventCompleted);
// Read multiple events from a stream
rpc ReadStreamEvents(reckondb.client.messages.ReadStreamEvents) returns (reckondb.client.messages.ReadStreamEventsCompleted);
// Read all events from the global stream
rpc ReadAllEvents(reckondb.client.messages.ReadAllEvents) returns (reckondb.client.messages.ReadAllEventsCompleted);
// Stream events from a specific stream (server streaming)
rpc SubscribeToStream(reckondb.client.messages.SubscribeToStream) returns (stream reckondb.client.messages.StreamEventAppeared);
// Delete a stream
rpc DeleteStream(reckondb.client.messages.DeleteStream) returns (reckondb.client.messages.DeleteStreamCompleted);
// Transaction operations
rpc StartTransaction(reckondb.client.messages.TransactionStart) returns (reckondb.client.messages.TransactionStartCompleted);
rpc WriteToTransaction(reckondb.client.messages.TransactionWrite) returns (reckondb.client.messages.TransactionWriteCompleted);
rpc CommitTransaction(reckondb.client.messages.TransactionCommit) returns (reckondb.client.messages.TransactionCommitCompleted);
// Health check
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
// Get stream metadata/info
rpc GetStreamInfo(GetStreamInfoRequest) returns (GetStreamInfoResponse);
}
// Additional messages needed for the service
message HealthCheckRequest {
string service = 1;
}
message HealthCheckResponse {
enum ServingStatus {
UNKNOWN = 0;
SERVING = 1;
NOT_SERVING = 2;
}
ServingStatus status = 1;
}
message GetStreamInfoRequest {
string event_stream_id = 1;
}
message GetStreamInfoResponse {
string event_stream_id = 1;
int64 current_version = 2;
int64 event_count = 3;
bool exists = 4;
int64 created_date = 5;
}
// Store management messages
message ListStoresRequest {
}
message ListStoresResponse {
repeated StoreInfo stores = 1;
}
message StoreInfo {
string store_id = 1;
string name = 2;
bool active = 3;
int64 event_count = 4;
int64 stream_count = 5;
}
// Extend the service with store management
service StoreManagement {
// List all available stores
rpc ListStores(ListStoresRequest) returns (ListStoresResponse);
}