Skip to content

Light-weight event-processing based on the idea of meshed cells with different pluggable behaviors

License

Notifications You must be signed in to change notification settings

tideland/go-cells

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tideland Go Cells

GitHub release GitHub license Go Module GoDoc Workflow Go Report Card

Description

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. ;)

Behaviors

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.

Contributors

About

Light-weight event-processing based on the idea of meshed cells with different pluggable behaviors

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published