edgetelemetrics / eventcorrelation
Event Stream correlation engine for PHP
Installs: 3 627
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^8.0
- ext-json: *
- ext-pcntl: *
- clue/ndjson-react: ^1.2.0
- edgetelemetrics/php-json-rpc: ^1.2.0
- evenement/evenement: ^3.0.1
- psr/log: ^1.0.1
- react/child-process: ^0.6.5
- react/event-loop: ^1.3.0
Requires (Dev)
- bref/logger: *
- dragonmantank/cron-expression: *
- enlightn/security-checker: ^1.9
- nikic/fast-route: *
- nikic/php-parser: ^4.12
- phpstan/phpstan: *
- react/http: ^1.5.0
- react/socket: ^1.9.0
- vimeo/psalm: ^4.10
Suggests
- ext-libev: Use the libev backend to improve performance of the event loop
- ext-libuv: Use the libuv backend to improve performance of the event loop
- ext-zend-opcache: OPCache greatly increases performance and reduces memory usage
- dragonmantank/cron-expression: Schedule rules using Cron like expressions
- edgetelemetrics/timebucket: Process temporal data in descrete time slices
- nikic/fast-route: Required for Management server
- react/http: Required for Management server
- react/socket: Required for Management server
- dev-master
- v0.7.1
- v0.6.13
- v0.6.12
- v0.6.11
- v0.6.10
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6
- v0.5.8
- v0.5.7
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4
- v0.3
- v0.2.15
- v0.2.14
- v0.2.13.2
- v0.2.13.1
- v0.2.13
- v0.2.12
- v0.2.11
- v0.2.10
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- 0.2.1
- v0.2.0
- 0.1.1
- 0.1.0
This package is auto-updated.
Last update: 2024-11-27 01:07:26 UTC
README
PHP Event Correlator is an event correlation tool to process a stream of events, make decisions based on Rules sets, and perform actions based on these Rules.
Event correlation is useful in many areas. For example, log processing, microservice coordination, IoT event processing.
PHP-EC is being used in production for multiple IoT projects, some processing 10M+ events per day from multiple disparate systems.
Requirements
The package is compatible with PHP 8.0+
Installation
You can add the library as project dependency using Composer:
composer require edgetelemetrics/eventcorrelation
Performance can be improved by installing optional PHP extensions (ext-libuv or ext-libev)
Examples
See /examples directory
Getting Started
TBC.
Components are:
-
Events: An event is made up of a type, date, id, and data
-
Event Stream: A time ordered stream of events
-
Input Processes: programs that provide event streams into PHP-EC. These can be PHP scripts, NodeJS, Bash script etc.
-
Actions: Programs that perform tasks when requested. This may be writing to a database, sending an email etc.
-
Rules: Rules define a set of events to be processed within a defined time period. Once a Rule is matched or a defined timeout period is exceeded the rule can:
- run Actions (for example send email, write to database)
- emit Events (emit a new or modified event for another Rule to handle [chaining rules])
- run an additional input process (load more data into the system)
Cron Like Rules
PHP-EC supports rules that can call actions based on Cron time expressions, system start and system shutdown.
License
MIT, see LICENSE file.
Contributing
Bug reports (and small patches) can be submitted via the issue tracker. Forking the repository and submitting a Pull Request is preferred for substantial patches.