Add change feed API for streaming graph mutations to consumers
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- go
- Domain
- api, backend, distributed-systems
Research direction
Start with docs/docs/roadmap.md and trace how Meteor’s incremental delivery represents graph deltas before choosing an API transport. Define the event types, filtering, replay, ordering, back-pressure, and update-state guarantees, then verify that the design covers all listed consumer and reconnection requirements.
Written by the indexing model from the issue text.
Description
Context
Compass is currently a pull-only store — you query it to get data. AI agents and downstream systems that need to stay current should be able to subscribe to graph changes rather than polling.
Scope
- Streaming API endpoint that emits graph mutations as they happen
- Event types:
entity.created,entity.updated,entity.deleted,relationship.created,relationship.deleted - Support filtering by entity type, namespace, or relationship type
- Include before/after state for updates (or at minimum, changed fields)
- Transport options: SSE (Server-Sent Events), WebSocket, or gRPC streaming
Design Considerations
- Back-pressure handling for slow consumers
- Cursor-based replay for consumers that disconnect and reconnect
- Event ordering guarantees within a namespace
- Integration with Meteor's incremental delivery — Meteor pushes deltas, Compass propagates them
Why
AI agents maintaining cached context can subscribe and keep their view fresh without polling. Downstream systems (monitoring, alerting, compliance) can react to graph changes in real time.
References
- Dominant language
- Go
- Stars
- 72
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from raystack/compass
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
All issues in raystack/compass
Similar issues
-
Type/Bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OpenNSW/nsw-srilanka#497 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
milvus-io/birdwatcher#545 ·
-
kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
kubernetes-sigs/prow#953 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
caddyserver/caddy#8046 ·