GithubHelp home page GithubHelp logo

lucasnetau / php-ec Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 2.0 422 KB

Event Stream correlation engine for PHP

Home Page: https://packagist.org/packages/edgetelemetrics/eventcorrelation

License: MIT License

PHP 100.00%
event-sourcing correlation event-streaming eventstream

php-ec's Introduction

PHP Event Correlator (Event Sourcing)

FOSSA Status GitHub

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.

FOSSA Status

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.

php-ec's People

Contributors

fossabot avatar lucasnetau avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

fossabot saward

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.