I really like the idea of the event streams module. Just barely cobbled together a tag event stream from a UDT instance a log in a data base (much like a transaction group but cleaner IMO). I have so much more to learn with this new feature.
I wanted to see who else out there is playing with event streams. What are you building /thinking of building with it?
Next I’m gonna try out a “tags to Kafka” stream for certain UDTs as a way of logging domain events. I really like this compared to MQTT’s inability to retain historical messages.
Some improvement ideas I have:
support for wild cards in tag paths list for tag events. It would be amazing to not have to statically configure the paths.
ability to subscribe to at UDT type: imagine if I could create an event stream that was triggered any time a UDT instance of a certain type had a tag event. That would be huge
Integration with MQTT Engine, ability to set subscriptions like a regular MQTT client and MQTT as a sync. Plus encoders SpB / protobuf
Protobuf / avro encoding on Kafka messages
Examples built into quick start showing event streams use cases
I agree with the tag path wildcards - especially if they could be used in the middle of paths. For example, if I had a Motors folder spread across multiple production line folders.
UDT integration with event streams would be massive. That's something that isn't possible with transaction groups, and having this feature would be incredible.
I haven't had the chance to play it with yet (waiting on our system egineer to set up the beta) but I'm hoping to integrate it with RabbitMQ at some point in the future. Over the last couple of years we've hacked together a system that's based on the RabbitMQ Java client library, which works for our purposes, but it'd be nice if it could be properly integrated with these event streams.
I've only scratched the surface on Event Streams so far but I am definitely going to be listening closely at ICC this year as they talk about them. I think you've nailed some of the use cases for them and I feel like they are designed to be flexible to build whatever you have in mind.
There is the following known ‘issue’ with Event Streams, that Records can be lost from a buffer when an event stream is saved or disabled. Is this something which should eventually be fixed, so that the data in a buffer is not lost or does this work as intentended.
Is there some documentation available for redundant gateways and event streams? Is this supported an if, does is also copy the buffer to the redundant gateway?
I've been testing the Event Streams with the MQTT source (8.3 beta 4). I cant find any way to store the topic in the database? Payload is in the {event.data}, but is the topic avaliable? It seems the {event.metadata} is empty. The topic needs to be included in the event object!
It would also be nice to create column type JSON when using Postgres database (to store the raw payload)