piranaa

Real-time event stream processing micro framework

Usage no npm install needed!

<script type="module">
  import piranaa from 'https://cdn.skypack.dev/piranaa';
</script>

README

Piranaa

Real-time event stream processing micro framework

Piranaa is an event stream processing micro framework designed to be simple to use with overall good performances. This library is not meant to be a full-scale stream processing engine like Apache Spark Streaming or Apache Storm but to provide a good alternative for use case where large-scale distributed computing would be overkill.

Use case

  • Simple stream processing scenario
  • Small to medium business event engine
  • Personal data processing (RSS / Twitter / Email)
  • Backup stream of data for later processing / querying
  • When you want to have your own IFTTT / Zapier but you want to keep your data and API keys.

Features

  • Simple API
  • Use of channels (like go) and transducers to manage your data pipelines
  • Always-on persistence using PouchDB (compatible with CouchDB)
  • Leverage JSON-LD (linked data) as a data model
  • Map-reduce views (using PouchDB)

Rationale

Piranaa building blocks are called Agents.
An agent is a simple function which will process or create some events and achieve some actions in returns.
Every agent has to be named and can take options.
An agent can output new events (simple objects) which are automatically saved by the underlying store (default to pouchdb).
An agent can listen for specific events and react accordingly.

Quickstart

TBD

Documentation

TBD

Roadmap

  • More tests
  • REST endpoint (with webooks features)
  • UI for managing, monitoring your agents and data visualization
  • Example apps

License

May be freely distributed under the MIT license.

Copyright (c) 2010-2015 Michaƫl Schwartz and other contributors