All Projects → maki-nage → makinage

maki-nage / makinage

Licence: MIT license
Stream Processing Made Easy

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to makinage

Benthos
Fancy stream processing made operationally mundane
Stars: ✭ 3,705 (+11851.61%)
Mutual labels:  stream-processing, streaming-data
Machine
Machine is a workflow/pipeline library for processing data
Stars: ✭ 78 (+151.61%)
Mutual labels:  stream-processing, streaming-data
Awesome Kafka
A list about Apache Kafka
Stars: ✭ 397 (+1180.65%)
Mutual labels:  stream-processing, streaming-data
awesome-bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 11,093 (+35683.87%)
Mutual labels:  stream-processing, streaming-data
Kafka Streams In Action
Source code for the Kafka Streams in Action Book
Stars: ✭ 167 (+438.71%)
Mutual labels:  stream-processing, streaming-data
openPDC
Open Source Phasor Data Concentrator
Stars: ✭ 109 (+251.61%)
Mutual labels:  stream-processing, streaming-data
Saber
Window-Based Hybrid CPU/GPU Stream Processing Engine
Stars: ✭ 35 (+12.9%)
Mutual labels:  stream-processing, streaming-data
godsend
A simple and eloquent workflow for streaming messages to micro-services.
Stars: ✭ 15 (-51.61%)
Mutual labels:  stream-processing, streaming-data
Real Time Sentiment Tracking On Twitter For Brand Improvement And Trend Recognition
A real-time interactive web app based on data pipelines using streaming Twitter data, automated sentiment analysis, and MySQL&PostgreSQL database (Deployed on Heroku)
Stars: ✭ 127 (+309.68%)
Mutual labels:  stream-processing, streaming-data
Awesome Bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 10,478 (+33700%)
Mutual labels:  stream-processing, streaming-data
Go Streams
A lightweight stream processing library for Go
Stars: ✭ 615 (+1883.87%)
Mutual labels:  stream-processing, streaming-data
frizzle
The magic message bus
Stars: ✭ 14 (-54.84%)
Mutual labels:  stream-processing, streaming-data
Gsf
Grid Solutions Framework
Stars: ✭ 106 (+241.94%)
Mutual labels:  stream-processing, streaming-data
dspatch
The Refreshingly Simple Cross-Platform C++ Dataflow / Pipelining / Stream Processing / Reactive Programming Framework
Stars: ✭ 124 (+300%)
Mutual labels:  reactive-programming, stream-processing
mxfactorial
a payment application intended for deployment by the united states treasury
Stars: ✭ 36 (+16.13%)
Mutual labels:  stream-processing, streaming-data
dagger
Dagger is an easy-to-use, configuration over code, cloud-native framework built on top of Apache Flink for stateful processing of real-time streaming data.
Stars: ✭ 238 (+667.74%)
Mutual labels:  stream-processing
cycle-hn
Hackernews Clone Using CycleJS
Stars: ✭ 42 (+35.48%)
Mutual labels:  reactive-programming
download-using-streaming-response-body
An example for streaming large files in chunks using StreamingResponseBody in Spring MVC
Stars: ✭ 62 (+100%)
Mutual labels:  streaming-data
realar
5 kB Advanced state manager for React
Stars: ✭ 41 (+32.26%)
Mutual labels:  reactive-programming
Perfect-Kafka
An Express Swift Client of Apache Kafka 0.8, the Stream Processing Platform
Stars: ✭ 20 (-35.48%)
Mutual labels:  stream-processing

makinage-logo Maki Nage

Stream Processing Made Easy

Github WorkFlows Documentation

Maki Nage is a Python stream processing library and framework. It provides expressive and extensible APIs. Maki Nage speeds up the development of stream applications. It can be used to process stream and batch data. More than that, it allows to develop an application with batch data, and deploy it as a Kafka micro-service.

Read the doc to learn more.

https://github.com/maki-nage/makinage/raw/master/asset/graph.png

Main Features

  • Expressive and Extensible APIs: Maki-Nage is based on ReactiveX.
  • Deployment Ready: Maki-Nage uses Kafka to scale the workload, and be resilient to errors.
  • Unifies Batch and Stream processing: The same APIs work on both sources of data.
  • Flexible: Start working on your laptop, continue on a server, deploy on a cluster.
  • ML Streaming Serving: Serve your machine learning model as a Kafka micro-service.

Installation

Maki Nage is available on PyPI:

pip install makinage

Getting started

Write your data transforms

import rx
import rxsci as rs

def rolling_mean():
    return rx.pipe(
        rs.data.roll(window=3, stride=3, pipeline=rx.pipe(
            rs.math.mean(reduce=True),
        )),
    )

Test your code on batch data

You can test your code from any python data or CSV file.

data = [1, 2, 3, 4, 5, 6, 7]

rx.from_(data).pipe(
    rs.state.with_memory_store(rx.pipe(
        rolling_mean(),
    )),
).subscribe(
    on_next=print
)
2.0
5.0

Deploy your code as a Kafka micro-service

To deploy the code, package it as a function:

def my_app(config, data):
    roll_mean = rx.from_(data).pipe(
        rs.state.with_memory_store(rx.pipe(
            rolling_mean(),
        )),
    )

    return roll_mean,

Create a configuration file:

application:
    name: my_app
kafka:
    endpoint: "localhost"
topics:
    - name: data
    - name: features
operators:
    compute_features:
        factory: my_app:my_app
        sources:
            - data
        sinks:
            - features

And start it!

makinage --config myconfig.yaml

Serve Machine Learning Models

Maki Nage contains a model serving tool. With it, serving a machine learning model in streaming mode just requires a configuration file:

application:
    name: my_model_serving
Kafka:
    endpoint: "localhost"
topics:
- name: data
  encoder: makinage.encoding.json
- name: model
  encoder: makinage.encoding.none
  start_from: last
- name: predict
  encoder: makinage.encoding.json
operators:
  serve:
    factory: makinage.serve:serve
    sources:
      - model
      - data
    sinks:
      - predict
config:
  serve: {}

And then serving the model it done the same way than any makinage application:

makinage --config config.serve.yaml

Some pre and post processing steps are possible if input features or predictions must be modified before/after the inference:

https://github.com/maki-nage/makinage/raw/master/asset/serve.png

Read the book to learn more.

Publications

License

Maki Nage is publised under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].