Back to Engineering Notes
Data & PerformanceTCE Website

Building a Unified College News Feed Without Department Fan-Out

This note is about choosing a denormalized read path so publishing can stay distributed while the homepage stays simple.

Problem

Departments needed independent publishing ownership, but the homepage still needed one recent feed for visitors.

Scanning every department for every homepage read would make the public feed harder to maintain and reason about.

Why It Was Difficult

Department autonomy and homepage simplicity pull in different directions.

The system needed a model that preserved local ownership while still supporting one global recent-feed surface.

Core Decision

Write department-local content and a global mirror together so the homepage reads unified feeds directly instead of scanning departments at request time.

Solution

Write each event or announcement to its department-local source and to a denormalized global mirror collection.

Let the homepage read the global mirrors directly instead of fan-out reads across departments.

Use separate mirror collections such as allEvents and allAnnouncements so the homepage path stays straightforward.

Impact

Department admins publish independently without forcing the homepage to aggregate cross-department reads each time.

Homepage reads stay simple and predictable.

The content architecture is easier to explain because ownership and aggregation are both explicit.

Tradeoff

Mirror drift, edits to trimmed items, and cleanup mismatches become real architectural risks.

Denormalization requires discipline to keep source and mirror collections aligned.

That tradeoff is acceptable because the read path is dramatically simpler for the homepage experience.

Ownership note

AI-assisted implementation. Architecture, decisions, tradeoffs, and UX ownership were mine.

Related Notes

Adrenaline Systems

Building Dense Dashboard APIs Without Creating Frontend Fetching Chaos

Owner dashboards need many panels, but separate fetches for every panel create lag and frontend complexity.

Adrenaline Systems

Designing Membership Lifecycles Instead of Mutating Subscriptions

A gym subscription is not just a row with a status. It can renew, expire, freeze, resume, refund, and interact with queued coverage, add-ons, and branch rules.

Next step

Trace the note back to the system, or continue the conversation.

These notes are part of larger systems work. You can return to the related project context or reach out if you need someone who can reason through workflows, authorization, and operational software without making them harder to operate.