Fast, lightweight, resilient: Introducing Edge, an evolution of Unleash’s proxy

This week Unleash’s Edge is available to all Unleash users

Edge allows for multiple environments within one instance

In a nutshell, Edge is a successor to the Unleash proxy. But it’s so much more than that. 

Edge is a lot faster. It’s even more resilient than our proxy. It weighs a lot less. It works with your back end as well as your front end. And it lets you house all your environments into a single instance.

It’s cliche to say, “and that’s just the beginning,” but it really is just the beginning. Literally: Edge 1.0 is out in the GA wild as of this week, and already we’re working hard on some pretty awesome features for 1.1 and beyond.

Before we really dive into the details on what makes Edge so special, let’s talk about its proxy predecessor, and why it’s so important.

About Unleash’s proxy

We originally built our proxy as a way of improving the security and privacy aspects of using Unleash for front end applications. 

It’s a simple yet elegant idea. Instead of having an Unleash SDK in your application, the Unleash proxy can do the evaluation instead and send the results to your application.

This means that your end users never get access to your Unleash API keys and Unleash never sees or gathers sensitive information from your application. In a world of regular data breaches and GDPR compliance, this is crucial.

Like so many things that we do at Unleash, the Unleash proxy is–and continues to be–a living experiment. While we absolutely believed that it would solve the use cases we built it for, we also believed that new use cases and limitations of this approach would be uncovered as we moved. 

And that’s exactly what happened. 

We discovered two new and exciting things. First, we found that the Unleash proxy was a very attractive target for scaling Unleash when you have infrastructure that spans the globe. This means not just for front end applications, but for backend applications too. 

The second thing we discovered is that, for very simple use cases, having to run the Unleash proxy to use Unleash in a front end application is a lot of work. 

So we built Edge.

How Edge works

Edge does everything the Unleash proxy does today. It provides you with a way to run front end applications without leaking sensitive information to either Unleash or your end users. 

But the design philosophy of Edge is different from the philosophy of the Proxy. Instead of being just a way to run front end applications, Edge is built to be a read replica of Unleash. 

This means scaling out Unleash becomes incredibly cost effective and easy to implement. 

Consider the following diagram:

Edge is like proxy, but more resilient, fast, and light on resources

In the above case, we can run an Unleash server in a distant location, while using a single instance of Edge to communicate with our Unleash server. 

This network hop can potentially be far away. Without using Edge, this would mean every single connected SDK would need to make this network call. Obviously this is less than ideal: it’s slow, and it costs money.

Instead, let’s say you run Edge, perhaps within your own cluster. With Edge, you can do this network call once, and get a lightning fast connection to all your connected SDKs. 

If you want to do this with the Unleash Proxy, you’ll need to run one instance of the Unleash proxy for every set of permissions that’s needed. 

Unlike the Unleash proxy, Edge is smart enough to work out the projects and environments each connected SDK needs without making additional network calls to its upstream Unleash server instance.


Why Edge will blow your mind

This all sounds great but practically what does this mean for an end user? Well, this approach provides a few really nice things to users:

Edge is fast and lightweight

We built Unleash Edge with performance in mind, it’s a fast and lightweight system, which is a huge improvement over the Unleash Proxy. 

Here’s why: Unleash Edge uses a tenth of the CPU resources and a hundredth of the memory resources that the Unleash Proxy needs to do the same job. 

This means that it’s much cheaper to run and maintain an Unleash Edge instance than the existing Unleash Proxy.

Edge gives even more resilience

Resilience is a major driver in Unleash Edge, we built this to continue to work well even without a connection to your Unleash server. 

Unlike the Unleash Proxy, Edge can and will start even without a connection to upstream. So long as Edge has been able to connect to Unleash at least once, you can, in turn, continue to connect new SDKs to Edge. 

We’ve even added new ways of starting up Unleash Edge with bootstrapping a set of features entirely disconnected from any Unleash instance. 

This means that even if your Unleash server goes down, you can feel confident the rest of your system will remain healthy.  

Edge improves on the ideas in the Unleash Proxy

Unleash Edge also builds on some of the experimental ideas in the Unleash Proxy focusing on quality of life. In other words, Edge is designed to be a nicer and easier experience. 

Two major improvements over the existing Unleash Proxy are: support for backend SDKs and support for all your Unleash environments in a single instance.

We’re just getting started

We’re very excited about Edge and we have lots of future ideas, so we’re by no means done here. 

A few exciting things that we’re planning on working on in the near future:

  • Even better connectivity. We want to get Unleash Edge as close as possible to your end users. We have plans to make Edge run as a first-class citizen to your favourite cloud edge provider.
  • SDK health check. Edge knows about all your connected SDKs today. In the near future, we’re looking into ways to surface a set of rich information about the health of your SDKs. This will give you insight into what’s happening across all of your SDKs and servers.

We work closely with users like you. Feedback from real world use cases is pretty much the best. 

Want to use Edge for a specific use case? Already giving Edge a spin and want it to do more? Let us know what you think on Slack or Github.




Share this article