Rapid design

A group of our good friends founded a startup with a simple and “unique” idea: a personalized news feed website with pluggable data sources. Someone might decide to plug in some of their favourite news sites or even a collection of their social media platform feeds.

When activating a plugin, there would obviously be some sort of authentication and authorization from the specific third party service. The platform itself also needs to authenticate users to persist the configured plugins and other user interaction logs, preferences.
There is also a cherry on top of it: in the dark and unknown territory of backend code there is a component which groups posts and news articles about the same story and creates a collection, which will be presented on the news feed in a fancy way in a single, shared post.

Your task is to help them by designing the broad architecture of this platform. You should focus on the rear layers (instead of the presentation layer) and start by asking yourself the questions:

  • What are the specific components needed for this architecture?
  • How will I separate these components?

You should plan and design your solution, strongly focusing on the bullet points listed in the “Criteria” section.

architecture design

Criteria

  • Scalability
  • Security (Isolation of users)
  • Logging
  • Maintainability

Submission

To present your solution, find the mentors of Tech Embassy, you will present it in a meeting room at the blackboard.