Monday, October 4, 2021

How Facebook Can Stop Zucc-ing Itself

Earlier today, Facebook and it's users suffered an hours-long outage in which a recently pushed update caused a DNS misconfiguration. As a result, all of Facebook, Instagram, WhatsApp and even Oculus were essentially unreachable, leaving users to wait it out or use other social media sites.

The problem was rather hilariously compounded by the fact that Facebook's physical access system ran through those same misconfigured DNS routes, so employees couldn't use their badges to enter the building, and those who were already inside couldn't get to certain necessary places due to the now inoperable access system.

While I'm sure the building security team at Facebook has already figured out a solution to the access system problem, I've been thinking how the "Facebook is down, so I'll just go to Twitter or TikTok or some other place" problem could be addressed insofar as keeping Facebook friends connected and communicating with each other without having to resort to rival services.

Before I talk about my idea, let me address one deceptively close possible solution: SMS fallback.

Facebook Messenger for mobile has a feature that allows it to integrate with your SMS messaging. Now, if the Facebook friend you're trying to contact during an outage is in your SMS contacts, then you're golden. But what if the person isn't in your contacts list and wants to keep it that way for any multitude of good reasons? Now imagine a significant percentage of those on your friends list isn't in your contacts list. Now you see the problem.

So SMS isn't really a fallback at all. But... here's something interesting I observed with the Facebook and Facebook Messenger mobile apps: a lot of data up to the outage is cached within the apps. In Messenger, you can still see the conversations you've had. Your wall doesn't show a blank, but whatever is stored in the local cache. Essentially, you have a small snapshot of Facebook on your phone.

So you have the data to connect to your Facebook friends, but the centralized services enabling communication is down. What if you had a self-hosted personal "mini-Facebook" instance on your smartphone that only activates during main service outages? You and your Facebook friends can message each other until the main Facebook service comes back up.

Sounds crazy? Actually, it makes a lot of sense if you're a Facebook higher-up and you want to keep your users from eyeing other competitors during unexpected downtime. And it also makes sense to users who want a painless way to stay connected without resorting to other platforms.

It's a similar concept to Linden Labs' "Second Life" beta grid. While the beta grid is primarily used to test new features before they're pushed to the main grid, it's also a fallback for SL residents when the main grid goes down for maintenance or upgrades. The beta grid is literally a snapshot of the main grid. Residents login virtually the same way, with the only noticeable changes is that their avatar appearance and inventory reflects the state of their accounts on the day the beta grid snapshot was taken.

Instead of the self-hosted option, Facebook could implement their own "beta grid". So when the main Facebook service goes down, users can hop on "Facebook beta".

What do you think?

The Weird and Wonderful World of Proot and Inits

If you want to run Linux on your unrooted Android phone via Termux , there's at least two main methods of doing so: full virtualization ...