Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonsequitur/alluvial
Stream your data from any source. Build projections and aggregations. Parallelize. Distribute. Replay.
https://github.com/jonsequitur/alluvial
Last synced: 4 days ago
JSON representation
Stream your data from any source. Build projections and aggregations. Parallelize. Distribute. Replay.
- Host: GitHub
- URL: https://github.com/jonsequitur/alluvial
- Owner: jonsequitur
- License: mit
- Created: 2015-01-04T15:27:29.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-12-07T22:38:14.000Z (almost 8 years ago)
- Last Synced: 2024-11-01T14:43:18.385Z (12 days ago)
- Language: C#
- Homepage:
- Size: 1.06 MB
- Stars: 16
- Watchers: 6
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Alluvial
========[![Build Status](https://ci.appveyor.com/api/projects/status/github/jonsequitur/alluvial?svg=true&branch=master)](https://ci.appveyor.com/project/jonsequitur/alluvial) [![NuGet Status](http://img.shields.io/nuget/v/Alluvial.svg?style=flat)](https://www.nuget.org/packages/Alluvial/) [![Join the chat at https://gitter.im/jonsequitur/Alluvial](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jonsequitur/Alluvial?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[Alluvial](http://en.wiktionary.org/wiki/alluvial) provides a programming model for aggregating and transforming streams of data and parallelizing and distributing workloads. The model isn't specific to any server technology. It's intended to address both aggregation of historical data and also processing of new data in realtime using the same code. You can use Alluvial to catch up and stay caught up, or replay a stream from any point.
Here are some of the things it can be used for:
* Building projections from event stores (for event-sourced models).
* Keep projections updated as new events appear.
* Distriburing heavy workloads, such as analyzing logs.
* Migrating large volumes of data.If you can define a query that returns your data as an ordered stream, Alluvial does the rest.
Here's what it can do currently:
* Define data from any source as a data stream
* Query those data streams.
* Derive streams from other streams.
* Create persisted projections based on existing data.
* Update persisted projections as new data appears.
* Create projections on demand.
* Track cursors that allow you to resume consumption of a stream at a later point and on a different node.
* Restart streams queries from any past position.
* Distributing stream query work across instances of your application.