Skip to main content

Resonate Server installation

Install and run the Resonate Server to provide durability to your application through hard crashes and failures.

MacOS and Linux

How to run the Resonate Server on your Mac OS or Linux machine?

You can use Brew, or if you have Golang installed, you can build it from source.

To install it with Brew and run it as a single binary, run the following commands:

brew install resonatehq/tap/resonate
resonate serve

The above command installs and starts the Resonate Server using a default configuration.

Alternatively, you can build and run it from source. Make sure you have the Go programming language installed. Then, run the following commands to download the repository and build the server:

git clone https://github.com/resonatehq/resonate
cd resonate
go build -o resonate

After it is built, you can compile and run it as a Go program using the following command:

go run main.go serve

Or, you can run it as an executable using the following command:

./resonate server

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

Release artifacts

You may also download the GitHub artifacts directly from the repo.

Configuration

Optionally, you can start Resonate with a configuration file.

./resonate serve --config resonate.yml

The following example file lists all default settings.

resonate.yml
api:
baseUrl: http://localhost:8001
size: 100
subsystems:
http:
addr: "0.0.0.0:8001"
timeout: 10s
grpc:
addr: "0.0.0.0:50051"

aio:
size: 100
subsystems:
store:
subsystem:
size: 100
workers: 1
batchSize: 100
config:
kind: sqlite # also: postgres
sqlite:
path: resonate.db
txTimeout: 250ms
postgres:
host: localhost
port: 5432
username: ""
password: ""
database: resonate
txTimeout: 250ms
network:
subsystem:
size: 100
workers: 3
batchSize: 100
config:
timeout: 10s
queuing:
config:
connections:
routes:

system:
notificationCacheSize: 100
submissionBatchSize: 100
completionBatchSize: 100

metrics:
port: 9090

Additionally, all configuration options can be specified as command line flags.

./resonate serve --help