Distributed Mesh In The Home: How Eero Is Disrupting Consumer WiFi With Highly Reliable Systems Powered By Akka And Reactive
Home WiFi - A Consumer Tech Category Overdue for Disruption
Everyone knows how agonizing home WiFi connectivity issues can be. Home WiFi routers -- with their confusing interfaces and unreliable performance -- have been mysteriously stuck in the user experience stone age.
San Francisco-based eero is the company that’s set out to solve this issue. You could say they’re the Apple of home WiFi, delivering a form factor and user experience that’s orders of magnitude above its predecessors and creating a fan base of delighted users willing to pay a higher cost for the evolutionary jump in home WiFi accessibility and performance.
As respected consumer tech reviewer Walt Mossberg put it: “WiFi is like air for living a digital life. You want as much of it as you can, everywhere. It’s possible to achieve that with high-quality, well-configured traditional routers. But I found that it’s much easier, if a bit pricey, with eero.”
More than Just “Dumb Boxes” in the Home
eero was founded in 2014 to “blanket the home in fast, reliable WiFi,” while setting new standards in user-friendliness and accessibility options.
“We created a product that evolves beyond the old WiFi model where you just set up a router and pray that it never breaks,” said John Lynn, Cloud Platform Manager at eero. “eero provides the consumer with more than just dumb boxes in the home.”
Bringing Mesh WiFi to the Consumer
Before eero even began product development, its founders were certain that the single router model wasn’t the future. It wasn’t working in the workplace or on college campuses, and it wasn’t going to work in the home where a growing army of connected devices are all competing for valuable WiFi. To provide reliable coverage and consistent performance across large homes and WiFi-crowded urban environments, eero chose to deliver its product as a distributed mesh platform. eero recommends starting with a 3-pack to provide multiple access points that create a mesh network to deliver WiFi to the farthest corners of homes of any size or shape.
Cloud-Based Access to WiFi EndPoints
Another key vector for eero product innovation is the cloud interface that it exposes to users through a mobile interface. Instead of the arcane home networking equipment approach of forcing consumers to login via IP address, eero delivers a cloud-based back-end that allows customers to access their device and network information over the Internet from any location. When a WiFi network is experiencing connectivity issues, now the user has the opportunity to access troubleshooting data on a mobile device via the cloud, regardless of location. The eero cloud is like having a networking engineer constantly making sure the network is working well for the customer.
Convergence of Set-Up, Routing and Extending
Since the commercialization of the Internet in the late 90’s, consumer networking has been in the dark ages. ISPs only deliver the signal to the home - they don’t give you great hardware. And third party router and extender hardware providers have failed to deliver much innovation on top of merely amplifying the signal from the ISP. Setting up network equipment is a bothersome tasks that requires counterintuitive interfaces and numerous configuration options that are beyond the comprehension of the average user. And for the changing way that households use the internet -- connecting more devices and expecting fast, reliable speeds in every room -- all of these shortcomings with previous approaches to consumer WiFi have been increasingly exposed.
eero is the first player in the home networking category to converge simplified installation, a human-centric design approach, and mesh networking performance that delivers a strong signal throughout the home. The company is winning over consumers who are tired of cobbling together routers and extenders, each with their own antiquated interfaces and limited performance.
A System Built for Innovation at Scale
On the back-end of eero, the company faced the general challenge that led them to Reactive: how to build a highly available, high performance infrastructure that’s able to communicate with each eero device. The advantages of the eero product - cloud-based, mesh networks, high performance and fluidity - also create user expectations of sub-second response time and always-on availability. The company needed a platform that would make it easy to model its domain as it grew in complexity and that could handle concurrency at a very high scale.
The problem with traditional web architectures — according to Lynn (read eero’s blog post on why they chose Akka) — boiled down to concurrency and shared memory.
“Idempotency can be difficult when someone gets click-happy with a web form,” said Lynn. “Bespoke distributed locking mechanisms and centralized control systems are used to prevent worker processes from stepping on each other’s state. More concurrent requests, long-running workers, and massively parallelized jobs become very complex, very quickly. And as things scale, the introduction of performance optimizations, like caching, further complicates things.
But perhaps the biggest problem of traditional web architectures is that the database becomes the shared memory in a vastly concurrent system. One of the things you learn early on in multi-threaded programming is that shared memory introduces a lot of complexity. Primitives such as locks, semaphores, and mutexes are employed to guarantee consistency across concurrent threads. In typical web services, we rarely attempt to coordinate access to data. With the popularity of powerful ORMs and MVC frameworks, it becomes easy to fetch the data you need from the database in order to service a request. If you need to guarantee consistency, you’re on your own.
As systems become more distributed with multiple request servers, async workers, caches, etc., there’s an increased likelihood that different parts of your system have different representations of the same piece of data. As data moves throughout your systems, consistency is harder and harder to maintain.”
Why Akka and Reactive
To solve these challenges, eero chose Akka — the toolkit and runtime for building highly concurrent, distributed and resilient message-driven applications. Akka and the actor model gave eero a powerful in-memory data architecture that allowed for very high performance communication between customer device endpoints, the eero back-end and the eero cloud.
With eero, the last communication time for a device is tracked by an actor. When a device communicates with the service, that actor updates its internal state accordingly. When eero needs to know the state of a customer’s network, the actor for each device can be queried for the device status. Internally, the device actor can decide when and how to persist its state. Since last communication time is no longer needed across the system, it becomes an implementation detail of “device status”. This frees the actor up to store last communication time in memory and only persist changes to device status to the data store.
It’s a messaging architecture that gives eero the power to scale customer endpoints, broker data between those endpoints and its back-end, and to deliver a highly responsive cloud interface to users, regardless of the status of individual devices. Akka also allows eero to model each user’s network and nodes with actors, including pushing firmware updates out to endpoints.
Commercial Success on Amazon - and Coming Soon to Best Buy
As the Internet of Things becomes a more pervasive delivery model for consumer technology, eero represents a look at the future of how consumer devices, cloud-native applications and the back-end of IoT participate in delivering a highly Reactive experience to customers. With Akka, eero has been able to exceed “what’s possible” by providing a much more solid messaging foundation than a three-level web architecture could afford.
eero’s platform innovation on Akka has paved the way for major commercial success. The product is a top seller in the router category on Amazon, is available for sale on BestBuy.com, and will be available in store at Best Buys nationwide this summer.
According to Lynn, the company has its sights set on continuous product innovation over time - from new features and capabilities in the devices themselves, to mobile application features that make managing home networks easy. The company has updated its software more than 10 times in the last three months since its launch, and the reliability and flexibility that Akka brings to the messaging between devices and the back-end is core to eero’s ability to innovate. eero also recently released its new Family Profiles as a new firmware and app update that provides a simple experience for creating internet access rules for the entire family.
Inspired by this story? Contact us to learn more about what Lightbend can do for your organization.