Xbus¶
Xbus provides high-level application messaging on top of NATS.
Requirements¶
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.