Changing The Status Quo With Leaf Computing

Changing The Status Quo With Leaf Computing

REST has been the dominant style for web APIs for, well, decades now. And due to its ubiquity, there haven’t been that many challengers to the typical stateless client-server arrangement. However, leaf computing is set to question this perspective and alter how we approach API design altogether.

According to Jeremiah Lee, dependencies on cloud computing for storage and remote processing aren’t always necessary. While lightweight clients made sense for the dawn of mobile phones, today’s edge devices have far more computational power and resources. Plus, ongoing data breaches demonstrate that funneling data into the cloud isn’t always a good idea.

Jeremiah Lee

At Platform Summit 2023, Jeremiah Lee will explore the challenges of cloud computing, and how to architect smarter apps.

Ahead of Platform Summit 2023, we’re connecting with a handful of speakers to learn about their upcoming sessions and to gather insights about trends in the API economy at large.

Jeremiah Lee, one such speaker, has previously worked on API platforms at Stripe, Spotify, and Fitbit. He’s currently exploring something new with federated social media and federated payments at Interledger. (He’s also spoken at Nordic APIs in the past!)

I recently caught up with Jeremiah to dig into leaf computing, a theme of his upcoming session. Below, we’ll explore what leaf computing enables and why API designers might want to incorporate more “offline-first” principles that grant clients more control over their data, processing, and state.

Check out his answers below, and be sure to attend the Platform Summit 2023 for more discussion on this topic and plenty of others!

2023-Platform-summit-sharing-image-1

What is the typical client-server paradigm for web APIs? What are its downsides or shortcomings?

Most web APIs still operate like clients that are dumb terminals talking to a server mainframe. The client makes requests from user input, the server does all the work, and the server sends output to be rendered by the client. The client must do this because it lacks something, like authority or computational resources. That makes sense for many use cases, like an online store or internal microservices.

However, many products today are built with an unnecessary network dependency. Compute and data storage are now cheap for both devices and data centers, but many features are still developed to be accessed over a network instead of performed locally on a user’s device. This applies to both apps and physical “smart” devices.

This has resulted in products that degrade unnecessarily when network connectivity is interrupted. It also means putting your data as a user in the care of companies that often don’t behave as responsibly as you do with your data.

Why are you excited about leaf computing? How does it change the typical API design?

I’m excited about leaf computing because I’m tired of subscriptions for expensive hardware, premature e-waste when good hardware stops working because its manufacturer turns off an API, and my data being part of security breaches when my data didn’t need to be in the cloud in the first place.

Leaf computing applies “offline-first” principles for apps to hardware and then goes further to think about full functionality when only “connected-sometimes.” It changes API design to be more about data formats, file storage, and file syncing. The client becomes more of a peer to an optional cloud component. The client is authoritative, so it manages its own state. The client is capable, so it performs all the processing. The client only asks a server for capabilities it cannot accomplish itself for some reason.

Why is it beneficial to grant the client more control?

The more important question is why it is beneficial for a user not to have a particular capability on the device they are using or for them to cede control to a server. We need to flip the starting perspective. Capabilities should be local unless there is a really good reason to depend on an external network resource. Data should stay local unless there is a really good reason for it to be copied elsewhere.

What are the other end benefits of leaf computing?

Doing processing locally on a customer’s device reduces computing costs for a provider. Leaving data in a customer’s control is advantageous because doing so reduces the storage costs and business risks for a provider. As Cory Doctorow said, “We should treat personal electronic data with the same care and respect as weapons-grade plutonium. It is dangerous, long-lasting, and once it has leaked, there’s no getting it back.”

Why are you excited for the Platform Summit 2023?

Platform Summit was the best API conference I attended in the Nordics before the pandemic, and I’m excited to return! The conference curation sparked thoughtful discussions among attendees that were as valuable as the talks. I often refer back to talk recordings and articles from past events, which demonstrates how high the quality of content has been.

Without giving away too much, what can attendees expect from your session?

I hope people who attend my session leave with an understanding of the challenges of cloud computing, the opportunities today to design apps and “smart” hardware differently, and the desire to do so.