Xbus - Go client
A Go client for Xbus.
This is a regular Go library:
go get bitbucket.org/orus-io/go-xbus
See the Xbus project for more info.
Implements the new actor protocol (see xbus-api README). Consumers and workers must be adapted. See the demo actors for an example.
Actor subscription now auto-call ActorLeaving on Unsubscribe.
Client: If a 'service' is not found, the client is no longer started
Add a function to validate event type names
Add a nats-timeout option to xbus-client.
cmd: - Add a emit command that emit a single envelope and does not start the
services. Useful for debugging purpose or as a basic integration tool.
This version is NOT protocol compatible with former versions of xbusd. xbusd and the clients must all be upgraded simultaneously.
- Reimplement all the nats calls based on nrpc and the xbus-api files. The clients should have very little (if any) adaptations to do.
- Add a GraphGet function
- Add RavenLogger that can send logs to Sentry
- Add a 'sentry.dsn' setting. If set, xbus.Client will send errors to sentry.
- EnvelopeSender: add GetID
- Fix: configuration file entry 'persistent-store' was ignored
- Add a TLSTimeout setting (default 4s)
- tools: cleanup cert-related functions
- Clarify Item type: it is no longer a JsonRawMessage, but a byte
- Add 'control.process.export'
- Add 'control.process.purge'
- Better process filtering API
- Add 'control.envelope.purge'
- Add 'control.logs.purge'
- Add 'Expire' attribute to AccountUpdateReq for specifying client certificate validity range.
- New 'postmortem' APIs allow post mortem inspection of failed process
- Cleaner 'graph' handling API
- Add a 'Gateway' account type
- Add 'AccountRenewAPIKey'
- Add 'GetActors'
- Add 'WhoAmI'
- Try harder to send processingend:
- Log the processingend occurences in a persistent store
- Retry calling processingend until server replies
- Add ActorFind, ActorDelete, AccountFind, AccountDelete
- Try harder to send processingend:
- Add a 'UnregisterActorService' for removing actor services from the registry
- Add a 'counter' demo emitter
- Add a constructor for EnvelopeSender that takes envelope and event IDs
- Add support for fragmented envelopes:
- Drop EnvelopeReader in favor of EnvelopeReceiver for receiving envelopes as streams of Items
- Add EnvelopeSender for writing envelopes as streams of Items
- Add Actor.OpenOutput
- EnvelopeValidator: Add EventTypesKnown field
- EnvelopeValidator: Better error handling in Add()
- ProcessingEnd, ProcessingSuccess & ProcessingError now takes a context & ID instead of an envelope
- Client.Startup & Shutdown now handle the connection to the bus:
- 'Connect' should not be called before calling Startup()
- On disconnection, the connection will be attempted until success
- Fix demo actors
- Add a 'demo' package, which contains some demonstration actor services:
- A 'demo.helloword' emitter
- A 'demo.relay' worker
- A 'demo.print-to-console' consumer
- Adjust some logs levels
- Add Actor.GetIntSettingD for reading integer settings with a default value.
- Add Actor.SendItemsContext for sending items within a context.
- Allow custom hostDefs in CreateServerRootCA
- Rename client.XBusClient to xbus.Client
- xbus.Client can start/stop actors given the proper configuration
- Provides a serve command that start a Client and its actors.
- Merge Consumer, Emiter & Worker in Actor
- Actor.Subscribe now have handler arg and returns the subscription that is no longer help by the Actor itself
- Actor options 'type' and 'settings' are now in a sub-option 'service'
- Fix configuration writeback so it preserves non-xbus settings
- Fix validation of events with 0 items
- Extracted client, lib, tools and xbus-client/cmd from xbus 3.0.0-beta.3