Time to BeReal

BeReal

Source: bereal.com/en

If unfamiliar, BeReal is a social network via which, each day at a varying time, users receive a notification that it’s “Time to BeReal.” Within 2 minutes of the notification, users are supposed to take photos (using their phone’s front and back cameras!) of their current activity, posting for their friends to see. Otherwise, the user’s photo is marked as “late.”

Suppose you’re a backend engineer at BeReal. And suppose that, underneath the hood, users submit photos to BeReal via HTTP POST requests. In the early stages of BeReal, a single server was enough to handle the few hundred requests each day. Now, though, BeReal has ballooned to millions of users!

  1. (2 points.) Technically speaking, in no more than three sentences, why it might be an issue if BeReal only has a single server to respond to incoming HTTP requests?

Since it’s clear BeReal might need to scale, read up on horizontal scaling versus vertical scaling at mongodb.com/basics/horizontal-vs-vertical-scaling.

  1. (3 points.) From a purely technical standpoint (disregarding cost, time, etc.) and in no more than five sentences, propose a general roadmap for how BeReal’s network architecture should scale as the business grows. Provide technical rationale for your answer.

Let’s assume that, no matter your own argument, BeReal purchases three separate servers for the time being. Read up on load balancing across servers at aws.amazon.com/what-is/load-balancing.

  1. (2 point.) In no more than two sentences, explain what a load balancer is.
  2. (2 points.) Note that one benefit of load balancing is availability of applications, whereby load balancers can “prevent issues that can cause downtime.” Technically speaking, in no more than three sentences, how could a load balancer help prevent BeReal from going down?

Suppose that BeReal decides to purchase a single load balancer, in addition to three (or more) separate servers.

  1. (2 points.) In no more than three sentences, identify one or more potential problems with that design (even though it might be better than what BeReal had originally!).