Giter VIP home page Giter VIP logo

alexkross / air Goto Github PK

View Code? Open in Web Editor NEW
7.0 3.0 1.0 1.11 MB

Real-time data stream classification and knowledge generation engine with no dependencies

License: GNU General Public License v3.0

Pony 100.00%
real-time data-science data-analysis machine-learning knowledge-discovery knowledge-representation c-language pony-language python cython jupyter-notebooks ipython fintech predictive-modeling data-stream cisco-aci devnet knowledge-generation-engine

air's Introduction

AIR

AIR is a real-time data stream classification and knowledge generation engine with no dependencies.

Actual (ubiquitous) dependcies are:

  • C, Pony-lang;
  • libcurl, libzmq, libjson-c;
  • Python, Cython, IPython/Jupyter are optional for CLI, REPL, debugging and visualization.

The core algorithm is lightweight and optimized enough to be implemented with FPGA/ASIC/SoC in parallel architecture or onto embedded systems as well as in globally distributed cloud platform, FaaS or SaaS. ZMQ may be replaced with MQTT or RAET. Curl and Json can also be replaced with other interface APIs for autonomous builds.

Overview

A core of the system, The Processor should do the smallest thing it aimed at - generate the best knowlege of possible from ingress event/data streams and try to produce predictive models.

Output (egress) knowledge stream is as compact as thoroughly processed according to the platform capabilities (RAM size, processing power, etc). In other words, you can see this as a lossy data compression black-box that tries to guess future events, supporting interactive pattern composition or customization.

Tasks for data (input and/or output) storage, aggregation, grouping, etc are beyond the scope of this project. They have a wide range of solutions for these, search in the GitHub.

Application

Currently my focus is on a Cisco ACI (Application Centric Infrastructure, aka APIC or Cisco SDN) deployment for FinTech.

Assumed ingress steams from 3-rd source on are (in order of importance):

  • Audit;
  • Faults;
  • Events;
  • Subscribed MOs;
  • Atomic counters;
  • NetFlow (huge, optional).

Note: Fabric configuration and sufficient subset of MIT is consumed by the engine at the boot phase on stream 1. User-provided corrections are fed on streams 1-2. See the diagram for the overal view.

Because the Processor can produce acceptable decisions under restricted environment and allowed time frame, the system is also targeted to HFT.

Scalability

Although one solid powerful engine is expected to perform better than a bunch of aggregated smaller ones it is possible to treat an egress flow as an ingress one and feed it to the higher engine in N-to-1 directed graph topology provided that the metadata (almost static) is properly replicated.

On the other hand by cascading the engines in such a way the more conscious reasoning may be achieved on the top node with less demands on resources.

The outlined here topology is not the only possible, moreover the Egress stream may be as simple as serial bitwise flow or rather complicated for the case when interactiveness are reqiured (e.g. the subject is a human).

Current status

Under development. Commits might be sporadic.

Feedback and contribution

Questions and suggestions are highly welcome. Just drop me an E-Mail.

Any contribution will support the development.

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.