feat: sync interview content in real time
Publish shared-document and note events through RabbitMQ, stream token-scoped document updates to participants, and update connected interviewer and participant browsers through resilient SSE subscriptions. Add snapshots, heartbeats, reconnection behavior, proxy streaming configuration, privacy filtering, and end-to-end RabbitMQ coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
e4fee06e2f
commit
c050815900
16 changed files with 438 additions and 101 deletions
9
.github/copilot-instructions.md
vendored
9
.github/copilot-instructions.md
vendored
|
|
@ -33,10 +33,11 @@ The required toolchain is Go 1.27.1 and React 19.3 with TypeScript/Vite. Use
|
|||
`internal/database/{repository,mapper,entity}`. Never expose GORM entities from
|
||||
handlers.
|
||||
- `backend/cmd/seed` applies embedded environment-aware fixtures.
|
||||
- `backend/internal/eventbus` publishes persisted interview notes to the durable
|
||||
`go-guess.interview-notes` RabbitMQ fanout exchange. Each API instance consumes
|
||||
through its own exclusive queue and distributes events to authenticated SSE
|
||||
subscribers.
|
||||
- `backend/internal/eventbus` publishes note and shared-document events to the
|
||||
durable `go-guess.interview-events` RabbitMQ fanout exchange. Each API instance
|
||||
consumes through its own exclusive queue and distributes interview-filtered
|
||||
events to authenticated interviewer SSE streams or token-authorized participant
|
||||
streams.
|
||||
- `frontend/src/app` owns application routing and providers, `src/features` groups
|
||||
feature pages and components, `src/components` contains reusable UI,
|
||||
`src/api/client.ts` is the typed HTTP boundary, `src/types` contains client
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue