matrix-org / matrix-org/matrix-hookshot
Multi-replica hookshot
- Dominant language
- TypeScript
- Stars
- 450
- Forks
- 95
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 23
Description
The idea of running hookshot with multiple replicas is an interesting one, and presents some interesting challenges. The current challenges I can forsee are:
- It goes without saying that we'd need Redis support for sharing a cache between processes. No in-memory support here.
- We'd need a way to spit **rooms** across replicas. Some replicas would handle some rooms, and some others.
- Appservice traffic would hit one or the other. We'd need the events that come out of that to hit the right replicas so they can react. This would probably mean adding a queue to redis for incoming matrix events and the like.
- The feed reader would need to be replica aware. Either we make it so that there is a central queue and all replicas pop from the same queue, or we ensure there are two queues with unique urls in both.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by mapping the current cache, room handling, appservice event flow, and feed-reader queues; the work is done when replicas can share state, divide rooms, route events correctly, and coordinate feed processing through Redis.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- redis, typescript
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100