In a previous post, I answered the question, What is Durable Computing?
When you are deploying apps to a durable computing platform like Golem Cloud, you still have to worry about bugs in your code and external failures (such as failure of a database you are talking to), but you no longer have to worry about server failures or restarts.
When hardware or network fails, when a server fails catastrophically or is terminated by a supervisor (like Kubernetes), or when a server is restarted, durable computing platforms detect the failure event, and automatically migrate your program to another computer, restoring its state, and resuming execution transparently.
Historically, we would turn to event sourcing or other patterns to obtain the reliability and robustness that durable computing gives us for free. Code that should not work, like a simple script that handles the various steps of a transactional checkout flow in an e-commerce application, suddenly just works the way you would hope for.
Durable computing gives us a superpower to rapidly and simply build scalable cloud apps that are reliable and robust without having to 'engineer around' fragile cloud computing. In turn, this lets us deploy value to customers faster, more reliably, more robustly, and without needing any expertise in distributed systems engineering.
Perhaps these compelling advantages are why we have seen the market rapidly go from virtually no durable computing solutions to dozens in the span of a few short years. Even in 2023, we are seeing the launch of no less than 4 new entrants into the space, including Golem Cloud (developer preview mode, anyway).
Every new entrant into the space makes a stronger case that, for at least specific use cases (if not all), we are on the verge of a re-invention of cloud computing. We are entering a new era in which decades of complexity are peeled back to reveal simple business logic.
In this post, I'm going to overview the landscape of durable computing solutions. To do this, we must consider a number of different dimensions that are relevant to users of durable computing, so we can gain insight into which solutions are a fit for which use cases.
I have identified twelve different dimensions of durable computing that help us to characterize all the different solutions in the space.
These twelve dimensions are as follows:
I have identified more than a dozen different solutions in the space of durable computing. While not a comprehensive list, I believe these solutions adequately encompass the diversity of approaches to durable computing, and capture many of the notable players in the space.
I've grouped these solutions into incumbents, big tech solutions, challengers, and actor-based solutions.
The incumbents are major cloud computing players who have brought solutions for durable computing to market. These solutions generally do not represent the cutting-edge of what is possible, but they use well-studied and conservative approaches, they are proven in production, and they are backed by major players in the space of cloud computing.
Big Tech Solutions
The big tech solutions had their origin inside tech companies, who lived with the pain of fragile computing for some time, before deciding they needed to create a solution to this problem. Some of these are open source, and others are commercializations of open source, but they all share in common a grounding in deep pains born from big tech, and they are all architected in such a way as to handle the scale of big tech.
The challengers are relatively new companies, most of which have formed in the wake of Temporal.io and adjacent big tech solutions, but which utilize different technological approaches and cater to different (but potentially overlapping) markets. Some challengers are open source, some are closed, and a number have raised venture capital. All challengers share a vision for a world in which durable computing is more pervasive and simpler.
Before durable computing became a recognized space, there were actor-based systems that offered both distribution and persistence, which enabled them to tackle use cases requiring durable execution, durable state, and high scalability. At least one of these (Kalix) has emerged from actors to offer a new way to build microservices.
Based on research I conducted across many of these solutions, I put together a visualization that highlights where different solutions fall on the thirteen dimensions of durability.
The dimensional values have the following meanings:
If you spot any inaccuracies, or have publicly disclosed data which could help fill in the gaps, then please reach out.
Using "fragile" clouds for all use cases forces developers to manually build robustness atop fragility, and while there are well-known techniques like event sourcing which can achieve this goal, it's a lot of work for something that shouldn't even be necessary.
To simplify these use cases, more than a dozen companies, products, and open source projects have formed around the idea of durable computing. These companies and projects make it easier than ever for developers to experiment with durability, and see whether or not the new paradigm can simplify the development of cloud apps.
Given there is no standards in the space, and that different solutions often target different use cases, it's important to be able to discuss the ways in which durable computing solutions are different. Through research and growing familiarity with this space, I've identified 13 different dimensions of durability.
Each solution optimizes for different tradeoffs along these dimensions, creating a highly diverse and competitive market. No one solution can be the best choice for all use cases, so the diversity in choices allows developers to choose the best solution for each situation. It is quite likely many of these solutions will end up owning some use cases.
It will be fascinating to watch the space of durable computing evolve, and it's my hope that by 2024, an updated "landscape of durable computing" will be authored and maintained by analysts or venture capitalists.
Until then, this post will have to do!
Don't miss out on the latest insights, trends, and updates in invincible serverless computing. Subscribe to our newsletter and stay ahead with Golem at your fingertips.
Unleash the power of invincible backends that auto-scale.get started