Xbus
Xbus provides high-level application messaging on top of NATS.
Requirements
Golang
This is a Go project. We build and test xbus with go 1.13.x
Postgresql
Xbus uses a postgresql database 9.5+ to serialize configuration and events.
Build
Build as a regular Go package:
make devtools
make install
Build from the source package
Make sure the ‘go’ found in the PATH is go 1.13 and its GOROOT/GOPATH are properly test.
Extract the xbus sources, and build:
tar xf xbus-3.1.*.tar*
cd xbus-3.1*
make install
# optionally run the tests:
# make test POSTGRES_DSN="dbname=xbus-tests user=xbus password=xbus sslmode=disable"
make doc dist
Running
5 binaries are created:
xbusd: Main Xbus program.
xbusctl: Xbus administration program (ctl = “control”); remotely connects to xbusd.
xbus-client: Default xbus client. Provides demo actors and tooling to administration a client account.
xbus-http: The Xbus HTTP gateway.
xbus-fullenv: A dev/test utility that build complete xbus path from a single yaml file.
Each program may be run with --help
to see available commands / flags / etc.
Warning: xbusd <xbusd> can produce a LOT of logs when placed under load.
The server will crash if it is unable to write to stdio/stderr. Init systems that implement rate limitation for logs (such as systemd) may cause xbusd <xbus> to crash if the server exceeds this limit.
Updating
The
migration
directory contains scripts one can use to migrate Xbus databases from one version to the other.The
migration
directory contains scripts one can use to migrate Xbus databases from one version to the other.Run
xbusd migrate
to migrate Xbus databases from one version to the other.