Middle — Principal
Designing a news feed system
livecode
Task condition
Create an architecture for a news feed service that ensures publishing, displaying, and caching materials from external sources.
Functional requirements:
- Users can publish messages to their personal news feed (including links to original resources).
- It is possible to view both personal and others' feeds with scrolling through the full list of entries.
- For news referencing external resources, a snippet (title, description, image) is displayed with a link to the original.
- It provides the ability to view the content of the original resource within the system without redirecting outside (caching).
Non-functional requirements:
- API availability of at least 99.9%.
- Maximum API response time — 100 ms.
- Data retention for at least 5 years.
Design should include:
- Storage and caching layers for external content.
- API for creating and reading feeds.
- Asynchronous handlers responsible for loading and updating snippets.
- Scaling mechanisms and fault tolerance.