Giter Club home page Giter Club logo

reka's Introduction

reka

Welcome to reka. You can find out a little more at http://nicksellen.github.io/reka.

  • runs on JVM, written in Java 8
  • build applications as a DAG of operations
  • simple DSL for constructing DAG
  • client/server architecture, so can deploy to remote server - client part written in golang
  • tiny core (519kb jar), everything else implemented in external modules
  • fully dogfood'ed - provisioning API and admin UI implemented with reka
  • no downtime redeploys for network protocols - [web]socket connections can even be kept open
  • available modules in various states of completeness for:
    • network: http, websockets, tcp sockets, ssl
    • email: smtp client/server, imap
    • databases: h2, postgres
    • languages: clojure, ruby (jruby), javascript (nashorn)
    • templating: markdown, mustache, jade
    • other: ssh, child process, irc, jsx
  • not suitable for use in production right now.

I'm looking for feedback, inspiration, use cases, thoughts, insults, and cake.

How to build

Prequisites:

  • java >=8
  • maven >=3

If you need to specify special environment, write an env.make file, mine looks like this:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
export REKA_ENV=development

Build reka-server.tar.gz

make

Run locally

make run

Roadmap and limitations

In the future it might do things like:

  • more modules: message queues, more databases, elasticsearch
  • modules written in non-JVM languages
  • live module reloading via OSGi
  • transparent distributed deployment - fundemental architecture totally supports this
  • "multi execution" graph architectures - currently each operation is executed once or not at all for a given trigger
  • include browser javascript implemention to seamless execute in browser or on backend
  • "intellisense"-like service for editors/IDEs
  • allow provisioning/configuring of kubernetes/docker instances

Current limitations:

  • only single server deployment
  • no type verification of data flowing through execution graph
  • not good enough solution for error handling yet
  • somewhat verbose/complicated to write simple modules in Java
  • need documentation on available modules/operations/configuration

reka's People

Contributors

gitter-badger avatar nicksellen avatar

Watchers

 avatar  avatar

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.