Why Resonate
Why adopt Resonate?
Resonate offers a holistic programming model for building cloud applications.
Resonate is dead simple, formally modeled, and deterministically tested — the way software should be.
It aims to provide a delightful developer experience and intuitive features. It also supports a wide range of application architectures, system-level design patterns, and use cases.
Dead simple
Dead simple is Resonate HQ's motto.
While there is a lot of complexity in distributed systems, Resonate aims to push that complexity into the platform and provide a simple API for developers to build distributed and durable applications.
Formally modeled
Resonate is an implementation of the Distributed Async Await specification.
Distributed Async Await is an open specification that enables a sequential programming model in any language, while providing execution recovery with resume semantics (i.e. Durable Execution) for distributed applications.
The specification is formally modeled, meaning that it is based on formal methods and has been proven to be correct.
Deterministically tested
Resonate components use Deterministic Simulation Testing to ensure they behave as expected in all scenarios.
Developer experience
Developer experience encompasses all aspects of how developers interact with and use the tools, systems, and processes that enable software development. A great developer experience reduces friction, fosters productivity, and encourages innovation by making tools intuitive, efficient, and enjoyable to use. A few aspects that make Resonate's developer experience stand apart:
- Sequential programming model
- Minimal primitives
- Supports incremental adoption
- Open source
Use cases
Use cases are specific scenarios or situations where a product, framework, or platform can be applied to solve a problem or meet a need.
Resonate's capabilities and features make it well-suited for a wide range of use cases including, but not limited to:
- AI infrastructure
- Function-as-a-service platforms
- Financial systems
- E-commerce
- Distributed data processing
- Web applications
Application architectures
Application architecture refers to the high-level structure and design of an application, including how its components interact, how data flows, and how it meets both functional and non-functional requirements.
Resonate can be used to build a wide range of application architectures including but not limited to:
- Microservices
- Monolithic applications
- Serverless
- Event-driven
- Service-oriented
- Actor model
System-level patterns
System-level patterns govern how distributed systems handle workload distribution, fault tolerance, and scalability.
Resonate facilitates the simple implementations of a wide range of system-level patterns, including but not limited to:
- Task processing
- Fan-out/fan-in
- Human-in-the-loop
- Idempotent operations
- Service discovery
- Load balancing
Features
Features are the functional capabilities or tools that a product, framework, or platform offers to enhance productivity, simplify workflows, or solve specific problems.
Resonate offers a number of features that make it easy to build distributed applications, including
- Automatic function execution retries
- Crash failure recovery
- Scheduled executions
- Transparent batching