Skip to content

API Reference

CoordiNode exposes services via gRPC on port 7080 and REST/JSON on port 7081 (HTTP/JSON transcoding via embedded structured-proxy). Bolt protocol (7082) and WebSocket subscriptions (7083) are planned for a future release.

Services

ServiceDescriptionProto
CypherServiceOpenCypher-compatible query execution service.
VectorServiceVector search operations.
TextServiceFull-text search operations backed by tantivy (BM25 scoring, 30+ languages).
GraphServiceCore graph CRUD operations.
SchemaServiceSchema management operations.
BlobServiceBlobStore service: content-addressed chunk storage for large values. Values >= 4KB are split into 256KB chunks identified by SHA-256 hash. Content-addressing provides automatic deduplication.
HealthServiceHealth checking service (grpc.health.v1 compatible semantics).
ClusterServiceCluster management operations.
ChangeStreamServiceCE Change Data Capture: tail oplog segments via gRPC server-side streaming. Single-consumer per shard. Client reconnects with a ResumeToken to continue from last acked position. At-least-once delivery. EE extensions (NATS/Kafka sinks, CEL pattern matching, cross-shard merge-sort, exactly-once delivery, multiple concurrent consumers) are in R400.
RaftServiceRaft consensus inter-node protocol (gRPC-only, no REST — internal). Uses opaque bytes for openraft type serialization (msgpack). This decouples the proto schema from openraft's internal generic types, making the protocol stable across openraft version upgrades.
SegmentTransferServiceInter-node bulk segment transfer: the transport for replication repair, node resync, and (per shard) migration. The source streams a segment's pieces to the target, which verifies each piece's checksum, decodes it, and writes it to local storage. BitTorrent-inspired: a target that has received pieces can in turn serve them to other targets, turning linear transfer into O(log N) fanout. This is an internal cluster RPC (node-to-node), not a client-facing API.
SessionServiceMultiplexed bidirectional session. One long-lived bidirectional stream carries many concurrent operations for a single client. The client fires a batch of requests into the stream; the server executes them concurrently and streams results back as independent cursors, tagged by request id, in completion order rather than send order. An interactive transaction rides the same session as one interleaved sub-thread alongside non-transactional requests. The session is sticky to the serving node for its lifetime. The unary query and transaction RPCs remain the simple default; this stream is their streaming superset.

Common Types

Messages and enums shared across services: Common Types

Ports

PortProtocolStatusPurpose
7080gRPC (HTTP/2)ActiveNative gRPC API, inter-node communication
7081HTTP/1.1 + JSONActiveREST/JSON transcoding via structured-proxy
7082BoltPlannedNeo4j wire protocol compatibility
7083WebSocketPlannedSubscriptions, live queries
7084HTTPActivePrometheus /metrics, /health, /ready