Tideland Go Cells provides a light-weight event-processing. It is realized as a mesh of cells which can subsribe to each other. One cell can subscribe to multiple cells as well as multiple cells can subscribe to one cell. Each cell runs an individual developed and/or configured behavior with an own state.
I hope you like it. ;)
The project already contains some standard behaviors, the number is still growing.
- Aggregator aggregates events and emits each aggregated value.
- Broadcaster simply emits received events to all subscribers.
- Callback calls a number of passed functions for each received event.
- Collector collects events which can be processed on demand.
- Combo waits for a user-defined combination of events.
- Condition tests events for conditions using a tester function and calls a processor then.
- Countdown counts a number of events down to zero and executes an event returning function. The event will be emitted then.
- Counter counts events, the counters can be retrieved.
- Evaluator evaluates events based on a user-defined function which returns a rating.
- Filter re-emits received events based on a user-defined filter. Those can be including or excluding.
- Mapper allows to analyse events and map them into new one for emitting.
- One-Time processes a user defined function only once for the first event, it will never called again. Outgoing events can be emitted during processing.
- Pairer allows to define a criterion for a first and second evend and a timeout between those. Matches and timouts will be emitted.
- Rate Evaluator measures times between a number of criterion fitting events and emits statistical data about these fittings.
- Rate Window Evaluator checks if a number of events in a given timespan matches a given criterion. In case it processes them.
- Frank Mueller (https://github.com/themue / https://github.com/tideland / https://tideland.dev)