☕ Break Google Up?
Latest Information on the DOJ investigation of Google. A new Low-Code Platform for Customer Service. I ramble on Availability in System Design.
Hey,
Hope you’re having an amazing day!
Interview Problem
You are given a list of integers as input.
This list represents the preorder traversal of a Binary Tree.
Using that list, reconstruct a Binary Tree with that preorder traversal and return the root node of the Tree.
We’ll send out the solution tomorrow, so make sure you move our emails to primary, so you don’t miss them!
Gmail users—move us to your primary inbox
On your phone? Hit the 3 dots at top right corner, click "Move to" then "Primary"
On desktop? Back out of this email then drag and drop this email into the "Primary" tab near the top left of your screen
Apple mail users—tap on our email address at the top of this email (next to "From:" on mobile) and click “Add to VIPs”
Industry News
Justice Department may target Chrome in Google Breakup - The US Justice Department and state prosecutors have been investigating Google for antitrust violations due to Google’s dominance in the search and digital advertising spaces. Google is currently the number 1 player in the market for digital ads, where they take as much as 42 cents for every dollar spent on digital advertising (the digital advertising market is a $160 billion dollar market and is growing rapidly).
Complaints that the DOJ has are around how Google uses the Android OS and the Chrome web browser to help entrench its search engine. One measure the department may take to curb this is to force Google to sell the Chrome web browser and part of their advertising business. This would obviously be an extreme step and could be the first court-ordered break-up of a U.S. company in decades.
A slightly less aggressive measure would be the department asking a court to limit how Google uses the data derived from chrome to aid it’s other products. One of the accusations from Google’s rivals has been that the search giant uses it’s access to user’s web histories (from Chrome) to aid it’s advertising business. Additionally, another criticism is that the standards that Google introduces for the Chrome web browser end up being industry-setting (and they end up getting adopted by Safari, Internet Explorer, Firefox and other browsers). This is an issue as Google can then purposely set standards that helps it’s ad business and then have those standards get implemented by the rest of the industry (which increases Google’s advantage further).
Even though the Ad Market is massive right now, it’s still growing extremely quickly. Advertisers have shifted money that was once spent in newspapers, television and radio to the internet. For the first time in 2019, U.S. digital ad spend surpassed traditional print and television. By 2023, digital advertising is projected to account for two-thirds of all money spent on ads.
Low Code platform Airkit has raised $28 million dollars since 2017 from Accel, Emergence Capital and Salesforce Ventures - The No Code and Low Code spaces are extremely hot right now. Airkit is another Low-Code platform which is trying to disrupt the way companies do customer service. They’re building a low-code platform that makes it easier for companies to build applications that provide a better customer service experience by solving three big problems
Companies have lots of customer data that sits in disparate silos and doesn’t talk to each other
Companies have trouble building end-to-end digital experiences
Companies need to deliver those experiences across any conversation channel as they do customer support on platforms like Twitter, Facebook, E-Mail, phone, etc.
Airkit is trying to simplify the building of customer applications by tackling those areas with a low-code platform. They generate revenue, like many other No Code platforms, by charging subscription licenses for the platform and usage pricing for the volume.
Previous Solution
As a refresher, here’s the previous question
What is Availability in the context of System Design?
How is it measured and how can you increase it?
Solution
Availability is how resistant your system is to failures. If a server or database goes down, will that take down your entire system? It’s a judge of how fault tolerant your service is.
Availability is typically measured as the percentage that a system is up in a given year. So, if a system is up and running for half the year, then it has 50% availability. Obviously, 50% availability is horrendous.
Instead, the availability of a system is usually something like 99.9%, which means the system will be up 99.9% of the year. Since the availabilities of modern systems are so high, we typically refer to them in terms of “nines”.
An availability of 99.9% corresponds to 3 nines, 99.99% corresponds to 4 nines, 99.999% corresponds to 5 nines and so on.
A measure of 5 nines of availability is considered the gold standard, and means you have a highly available system. 5 nines of availability means that the system will be down (on average) 5.26 minutes per year.
How can you increase availability?
You increase it through redundancy. Eliminate all single points of failure in your system through either passive or active redundancy. Passive redundancy is where you have multiple components at a single layer in your system. An example might be having multiple load balancers, so that if one fails there are others that will handle it’s load. Active redundancy is where multiple machines work together in such a way that only one or a few of the machines are doing work. If one of those working machines fail, then another machine will step in to take over the load. Therefore, you’ll need to be sure that there’s a reliable crossover, and that the crossover point itself isn’t a single point of failure.
Systems designers need to test their systems again and again for these single points of failure and eliminate them with redundancy.