gRPC / ConnectRPC
Shipped in v3-alpha (Beta). 17 RPCs are served via ConnectRPC, path-dispatched
on the same HTTP port as REST under the prefix
/mnemosyne.v1.MnemosyneService/. Interfaces may still change before 3.0 stable.
Service definition
syntax = "proto3";
package mnemosyne.v1;
service MnemosyneService {
// ─── Unary ───
rpc Recall(RecallRequest) returns (RecallResponse);
rpc Remember(RememberRequest) returns (RememberResponse);
rpc Forget(ForgetRequest) returns (ForgetResponse);
rpc ResolveReasoning(ResolveRequest) returns (ResolveResponse);
rpc RecordReasoning(RecordReasoningRequest) returns (RecordReasoningResponse);
rpc CreateTask(CreateTaskRequest) returns (Task);
rpc UpdateTask(UpdateTaskRequest) returns (Task);
rpc RecordEvent(RecordEventRequest) returns (Event);
rpc SelfEdit(SelfEditRequest) returns (SelfEditResponse);
rpc GetHealth(HealthRequest) returns (HealthSnapshot);
// ─── Server Streaming ───
rpc WatchMemory(WatchRequest) returns (stream MemoryEvent);
rpc WatchTasks(WatchTasksRequest) returns (stream TaskEvent);
rpc StreamHealth(HealthRequest) returns (stream HealthSnapshot);
// ─── Client Streaming ───
rpc IngestBatch(stream IngestItem) returns (IngestSummary);
rpc ImportMemory(stream MemoryChunk) returns (ImportResult);
// ─── Bidirectional ───
rpc Session(stream SessionMessage) returns (stream SessionResponse);
rpc FederationSync(stream SyncMessage) returns (stream SyncMessage);
}Why ConnectRPC
The server speaks ConnectRPC, which means:
- Web-friendly: works from browsers via Connect-Web (no gRPC-Web proxy)
- JSON-compatible: same endpoints accept Protobuf or JSON
- Tooling: codegen for TypeScript, Go, Swift, Kotlin via Buf
Use cases
| Method | Why streaming |
|---|---|
WatchMemory | Long-lived listener — push new facts as they arrive |
IngestBatch | Bulk import without batching round-trips |
Session | Conversational state — turn-by-turn over one connection |
FederationSync | Bidirectional reconciliation with peer instance |
Authentication
metadata: { authorization: "Bearer mns_live_xxx" }See also
- v3 REST surface — unary equivalents
- WebSocket — alternative for browser-only consumers
- Federation — uses bidi streaming