Producing to Kafka is just one way to use EventGate. It's nice to have it as the default, except that building the librdkafka binary is not very lightway, nor does it always work so smoothly on all OS-es (e.g. MacOS). By making node-rdkafka an optional dependency (and guarding against it being missing), we should be able to more easily create development eventgate instances without needing to build librdkafka.
|Open||None||T185233 Modern Event Platform|
|Resolved||Ottomata||T259202 Instrumentation development environment on EventGate server|
|Resolved||Ottomata||T266058 Make node-rdkafka an optional dependency of EventGate|
Ok, I did some work today to factory out our async Kafka factory wrapper from eventgate into its own library. This makes it easier to make it an optional dependency of both eventgate and eventgate-wikimedia. This currently includes 4 changes, including one to make it all work in EventLogging as a devserver, for the parent task T259202.
- New node-rdkafka-factory repo and module: https://gerrit.wikimedia.org/r/c/node-rdkafka-factory/+/637026
- Make eventgate use node-rdkafka-factory: https://github.com/wikimedia/eventgate/pull/12
- Make eventgate-wikimedia use node-rdkafka-factory: https://gerrit.wikimedia.org/r/c/eventgate-wikimedia/+/635384
- Make EventLogging use eventgate-wikimedia without node-rdkafka: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/EventLogging/+/617770
These all need to be merged and published in order.