Resonate is in the Design Phase
Our code base is constantly evolving as we are exploring Resonate's programming model. If you are passionate about a dead simple developer experience, join us on this journey of discovery and share your thoughts.
Resonate offers a programming model that allows you to build distributed applications using an intuitive paradigm you already know — async await.
Durable Async Await are Functions and Promises that maintain progress in durable storage.
Resonate is currently in active development without a formal release cycle. We welcome early adopters to experiment with the latest build from main as we work towards our first stable release. Your feedback is greatly appreciated.
OS | Architecture | Link |
---|---|---|
MacOS | x86_64 | Install |
MacOS | aarch64 | Install |
Linux | x86_64 | Install |
Linux | aarch64 | Install |
Resonate makes it easy to get started creating and interacting with durable promises. Follow these steps to build and run Resonate, then start creating and completing promises.
-
Build and Run
The resonate server supports
http
andgrpc
protocols as well assqlite
andpostgres
as a data store.# Build go build -o resonate # Start ./resonate serve
Once running, you'll see log output like:
time=2023-01-01T00:00:00.000-00:00 level=INFO msg="starting http server" addr=0.0.0.0:8001 time=2023-01-01T00:00:00.000-00:00 level=INFO msg="starting grpc server" addr=0.0.0.0:50051 time=2023-01-01T00:00:00.000-00:00 level=INFO msg="starting metrics server" addr=:9090
-
Create a Promise
On separate terminal, create a durable promise with a unique identifier, timeout, and data.
resonate promise create my-promise \ --timeout 2524608000000 \ --data 'Durable Promise Created'
-
Complete a Promise
Finally, complete the promise by resolving or rejecting it Pass the same ID and the completed state.
resonate promise complete my-promise \ --state RESOLVED \ --data 'Durable Promise Resolved'
resonate promise complete my-promise \ --state REJECTED \ --data 'Durable Promise Rejected'
go run ./...
go test -v ./...
See our contribution guidelines.
The Resonate Server is available under the Apache 2.0 License.