Xbus¶
Xbus provides high-level application messaging on top of NATS.
Requirements¶
Golang¶
This is a Go project.
Versions of Go we have tested:
- 1.7
WARNING: We require go 1.7+ because it fixed a nasty issue that made Xbus unstable with previous versions of Go. If using a previous version you will get random errors during json message decoding.
Govendor¶
We use govendor as our vendoring tool, you must have it installed in your system (or local tools) to be able to reproduce a correct build of Xbus.
Postgresql¶
Xbus uses a postgresql database 9.5+ to serialize configuration and events.
Running¶
3 binaries are created:
- xbusd: Main Xbus program.
- xbusctl: Xbus administration program (ctl = “control”); remotely connects to xbusd.
- xbus-client: Administration of actors (programs that can connect to Xbus).
Each program may be run with --help
to see available commands / flags / etc.
Updating¶
- The
migration
directory contains scripts one can use to migrate Xbus databases from one version to the other.
Versions¶
3.0.0-beta.7 (2017-03-09)¶
- Add support for fragmented envelopes, which implies a lot of code cleaning and a few refactoring.
- Add a route cache
- Reduce broker/emission coupling
Database¶
- Now requires Postgresql >= 9.5
- New Table:
route
- New Table:
route_target
3.0.0-beta.6 (2017-02-03)¶
- [doc] Update Quickstart to match latest go-xbus demo.relay settings
- [auth] Remove debug log when a client is authenticated
- Switch to go-xbus 3.0.0-beta.6
- Fix a host / port parsing issue that was preventing the
nats-host
setting from being set to0.0.0.0
.
3.0.0-beta.5 (2017-01-26)¶
- Switch to go-xbus 3.0.0-beta.5
- Fix: graph validation error message for invalid edges were wrong (‘origin’ was switched with ‘destination’.
- Doc: Add a fully fonctionnal graph to the Quickstart section, making it a complete and running example of a bus.
API¶
- New: Graph nodes how have a
actors
attribute, which references actors by name or id. Theactorids
attribute is deprecated. - Fix: In case no graph matches a new envelope, a ack error is returned to the emitter.
Database¶
- New: Table
graph_node
: add fieldactors varchar(255)
CLI¶
- xbusd: Allow custom hostdefs for server CA
- xbus-client: Embed demo actors from go-xbus/demo
3.0.0-beta.4 (2017-01-20)¶
- Build releases binaries from the right changeset.
- Extract reusable parts of this program to go-xbus.
- Switch to go-xbus 3.0.0-beta.4
3.0.0-beta.3 (2017-01-13)¶
API¶
- API Break: Add the “ActorProcessingEnd” entry point. It must be called by consumers to signal processing success or failure, and by other actors for processing errors. It adds support for long-running processing by consumers without hitting transfert timeout.
- API Beak: Rename ActorType to ActorKind, and all ‘Type’ fields of type ActorType to ‘Kind’.
- API Addition: Add a logging API for actors.
Database¶
- Provides a SQL migration script, that does:
-
actor
table: Drop unique index (name
/type
). -actor
table: Add a unique index (name
). -actor
table: Renametype
tokind
. -emission
table:event_positions
type changed toTEXT
(wasVARCHAR(255)
) - Newlog_entry
table that stores log messages.
Other¶
- Gnatsd: switch to upstream version (which merged our TLS auth related patch)
- Better test coverage
- More graph examples in the graph doc
- Graph validation: Check for invalid or duplicate node ids
- xbus-client: Better behavior when configuration file is missing
- make xbus-client/cmd extendable
- client: Add apis to easily start a group of actors from a configuration file
3.0.0-beta.2 (2016-12-22)¶
- Graph validation. When pushing a graph, a list of validation errors (if any) will be returned and displayed. A non-valid graph cannot be published, preventing many common mistakes that would be otherwise hard to detect.
- Optionnally capture SQL logs (see xbusd serve options –debug-sql-queries and –debug-sql-bindings)
- Embed detailed version information in the binaries (try –version and –full-version flags on the binaries)
- Upgrade gnatsd embedded version
- Build static binaries
- Embed documentation in the distribution package
- Documentation fixes
- A few logging level changes
3.0.0-beta.1 (2016-12-12)¶
Initial release. It features:
- Handling of simple envelopes
- Graphs
- Process
- Account/actors management
- ...