DanielFGray / DanielFGray/rfchat

Performance work for large channels and history

Open
#27 0 comments 0 reactions 0 assignees View on GitHub
enhancement p2 task
Dominant language
Elixir
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary
Improve performance for large channels, long histories, and heavier concurrency while preserving Discord-like user-visible behavior.

## Scope
- Reduce transcript, navigation, and permission-path costs for large channels.
- Introduce incremental history loading and UI strategies that stay smooth as message counts grow.
- Keep unread, mentions, and jump behavior correct under load.
- Establish explicit performance targets for realistic single-guild deployments.

## Acceptance Criteria
- [ ] Large channels remain usable without full-page stalls or runaway memory growth.
- [ ] History loading and navigation stay responsive as message counts grow.
- [ ] Benchmarking covers realistic authenticated LiveView/WebSocket flows, not only synthetic HTTP.
- [ ] Performance fixes do not regress correctness for permissions, unread state, or reconnect handling.

## Operational Notes
- Self-hosted deployments need clear capacity guidance and measurable targets.
- User-visible parity matters more than microbenchmark wins that distort product behavior.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the transcript, navigation, permission, unread, mention, and reconnect paths, then establish benchmarks for authenticated LiveView/WebSocket flows with realistic message counts. Done means large channels avoid stalls and runaway memory, history navigation remains responsive, targets are documented, and permissions, unread state, and reconnect behavior remain correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir
Domain
backend, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.