Giter Club home page Giter Club logo

Kerala

Actions Status GitHub release (latest by date including pre-releases) MIT License

Kerala Ctl Demo

Kerala

Kerala is a distributed event-streaming server built for the modern day. It is robust, lightweight and super fast!

  • Produce/Consume - create Topics, then produce and consume them.
  • Process - create processors that transform or aggregate event data, and project new Streams with the outputs.
  • Distribute - scale & balance your event processors across your cluster.

Getting Started

Prerequisites

  • JDK 8 or above.

Installing

Using the gradle wrapper, you can now run.

$ ./gradlew installDist

This will produce the Kerala daemon binary kerala-server under ./core/build/install/kerala-server/bin

Run as Standalone

$ ./kerala-server

Run as Cluster

$ ./kerala-server --cluster :9191,:9292,:9393 --port :9191
$ ./kerala-server --cluster :9191,:9292,:9393 --port :9292
$ ./kerala-server --cluster :9191,:9292,:9393 --port :9393

Run with Docker

You can use the Dockerfile OR run via docker-compose:

$ docker-compose up

That will deploy a cluster containing 4 kerala nodes.

Running Tests

Unit Tests

You can run unit tests as part of a build:

$ ./gradlew build

Or, you can run them specifically:

$ ./gradlew test [--tests <package>|<regex>|<class-name>]

It is just vanilla Gradle so you can refer to the docs for more usages. If you use Jetbrains IDEA, you can also run the tests within the editor.

Coding Style

Kotlin is our core language and we currently enforce styling via ktlint. ktlint will run automatically on a build task.

And can also run it directly:

$ ./gradlew ktlint

And have the formatting done for you:

$ ./gradlew ktlintFormat

Built With

  • Kotlin - Structured concurrency w/ coroutines
  • gRPC - Server-Server communication
  • Raft Consensus - Distributed consensus

Contributing

Get on board by reading CONTRIBUTING.md guidelines for details on our code of conduct, and the process for submitting pull requests!

Versioning

We use SemVer. For the versions available, see the tags on this repository.

Authors

License

This project is licensed under the MIT License - see LICENSE file for details.

Kerala Use-Cases

There are numerous uses for event-streaming, here are just a few thing you could use Kerala for:

  • Define a Topic of UI Events (PageView, PageScroll, PageSwipe, ButtonClick, TextInput, etc) to analyze customer interaction with your product, to gain insights and optimize your critical customer flows.
  • Perform time-series analysis on all kinds of application event streams.
  • Create app/system audit streams for retrospective analysis for fraud or unauthorized access use-cases.
  • Natively supports CQRS Architectures
  • ...

Other things to checkout

Elisha's Projects

aspiring-coming-soon-template icon aspiring-coming-soon-template

Aspiring is a simple yet beautiful and reponsive Coming Soon template with a countdown, makes your visitors coming back for more. This template is developed using HTML, CSS and JavaScript.

camel-store icon camel-store

骆驼小店-可免费商用,新一代开源小程序商城。这是统一的入口项目。

clientjs icon clientjs

Device information and digital fingerprinting written in pure JavaScript.

deriv icon deriv

Playwright Bot to Automate Trading on Deriv. It's a cross-platform Desktop app written in Python, no deployments hustles

design-patterns icon design-patterns

Source code behind the python-patterns.guide site by Brandon Rhodes

django-es-dsl icon django-es-dsl

This is a package that allows indexing of django models in elasticsearch with elasticsearch-dsl-py.

django-sse icon django-sse

A display of how to do Server-Sent Events in Django using StreamingHttpResponse and PostgreSQLs LISTEN/NOTIFY

fastapi icon fastapi

FastAPI framework, high performance, easy to learn, fast to code, ready for production

gcode-eye icon gcode-eye

Analyse your 3D printing G-Code to provide accurate information such as print time and average speed.

gcode-rd icon gcode-rd

A Python library that can read, analysis, plot G-code files used in Additive Manufacturing (AM).

hizone icon hizone

MEAN Stack social network. (MongoDB, ExpressJS, Angular2 and Node.js)

isaver icon isaver

Hangzhou GSH Hackathon (AngelHack & G5 Capital)

memray icon memray

Memray is a memory profiler for Python

misc icon misc

Simple Deployment Automation for small Python Web Projects🐍🚀

misc-5min icon misc-5min

First 5 minutes on new servers. Secure your servers with single command - Ansible playbook

portmaster icon portmaster

🏔 Love Freedom - ❌ Block Mass Surveillance

presumm icon presumm

code for EMNLP 2019 paper Text Summarization with Pretrained Encoders

prodjs icon prodjs

Easiest & Opinionized Way to deploy small-mid size Nodejs apps

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.