/event-shuttle

Primary LanguageGoMIT LicenseMIT

event-shuttle

goal: unix system service that collects events and reliably delivers them to kafka, relieving other services on the same system from having to do so.

journals events through bolt-db so that in the event of an kafka outage, events can still be accepted, and will be delivered when kafka becomes available.

  • listens on 127.0.0.1:3887, rest-api is POST /:topic -d message
  • journals events to bolt db.
  • discovers brokers via netflix exhibitor, or a seed broker list.
  • delivers events to kafka.
 event-shuttle --help
Usage of event-shuttle:
  -brokers="": comma seperated list of ip:port to use as seed brokers
  -db="events.db": name of the boltdb database file
  -debug=false: start a pprof http server on 6060
  -exhibitor=false: use EXHIBITOR_URL from env to lookup seed brokers
  -port="3887": port on which to listen for events

using a broker list

event-shuttle -brokers 1.2.3.4:9092,1.2.3.5:9092

using netflix exhibitor to find brokers

EXHIBITOR_URL=<some httpsUrl with creds> event-shuttle -exhibitor=true