What this context does
Studio is the tenant-level command center: across all of the user’s projects, “what’s been happening?” It is the cross-project view UC-05 isn’t — instead of one project’s activity, the whole tenant’s recent activity in one feed.
Scope boundary
- Owns: cross-project recent-activity aggregation, the per-tenant SSE stream.
- Does not own: per-project activity stream (UC-05), project list (UC-03001), conversation list (UC-04003).
Main entities
No new entities — reads from ACTIVITY joined to PROJECT via projectId, filtered to
the user’s tenant.
Use cases
| UC | What it does |
|---|---|
| UC-06001 | Recent Activity — REST snapshot + SSE stream, cross-project tenant feed |
Component diagram
{/* Image missing: UC-06 Studio — Component View (../../assets/diagrams/uc06Components.svg) */}
Dependencies on other contexts
- UC-05 Workspace Activity — same
activitiestable, same dedup contract (ADR-009), same SSE event convention (ADR-008). - UC-02 Tenant Management — scoping is by
tenantIdfrom the JWT. - UC-03 Project Management — each row is enriched with the project name and accent for display.
Cross-cutting
- Default page size 10 on Studio snapshot — chosen so the deduped feed reliably yields ~10 visible rows on first paint. See ADR-009.
- Caffeine in-process cache for
projectId → (tenantId, projectName)lookups insideActivityEventBusto avoid hot-path DB hits during fanout.
Was this page helpful?
Thanks for the feedback.