Geode uses a modern, efficient wire protocol built on QUIC+TLS 1.3 (default) with Protobuf messages. gRPC is supported for compatibility and uses the same Protobuf schema.
Transport Layer
QUIC Protocol
Geode uses QUIC for transport by default.
Advantages over TCP:
- Reduced connection establishment latency (0-RTT)
- Built-in multiplexing (no head-of-line blocking)
- Connection migration (survives network changes)
- Improved congestion control
Port: 3141 (standard) or 8443 (alternative)
ALPN: geode/1
TLS 1.3 Security
All QUIC connections are encrypted using TLS 1.3.
# Start Geode with TLS
./geode serve \
--cert /etc/geode/certs/server-cert.pem \
--key /etc/geode/certs/server-key.pem \
--listen 0.0.0.0:3141
Message Format
Protobuf Messages
Messages are defined in src/proto/geode.proto and framed as length-prefixed Protobuf messages over QUIC (or gRPC framing).
Client Messages:
HelloRequestExecuteRequestPullRequestBeginRequest/CommitRequest/RollbackRequestPingRequest
Server Responses:
ExecutionResponse(payloads:SchemaDefinition,DataPage,Error,ExplainPayload,ProfilePayload)