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
| Service | Description | Proto |
|---|---|---|
| CypherService | OpenCypher-compatible query execution service. | — |
| VectorService | Vector search operations. | — |
| TextService | Full-text search operations backed by tantivy (BM25 scoring, 30+ languages). | — |
| GraphService | Core graph CRUD operations. | — |
| SchemaService | Schema management operations. | — |
| BlobService | BlobStore 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. | — |
| HealthService | Health checking service (grpc.health.v1 compatible semantics). | — |
| ClusterService | Cluster management operations. | — |
| ChangeStreamService | CE 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. | — |
| RaftService | Raft 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. | — |
| SegmentTransferService | Inter-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. | — |
| SessionService | Multiplexed 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
| Port | Protocol | Status | Purpose |
|---|---|---|---|
| 7080 | gRPC (HTTP/2) | Active | Native gRPC API, inter-node communication |
| 7081 | HTTP/1.1 + JSON | Active | REST/JSON transcoding via structured-proxy |
| 7082 | Bolt | Planned | Neo4j wire protocol compatibility |
| 7083 | WebSocket | Planned | Subscriptions, live queries |
| 7084 | HTTP | Active | Prometheus /metrics, /health, /ready |
