Coder Social home page Coder Social logo

shimada-toy-box / karafka Goto Github PK

View Code? Open in Web Editor NEW

This project forked from karafka/karafka

0.0 0.0 0.0 1.9 MB

Framework for Apache Kafka based Ruby and Rails applications development.

Home Page: https://karafka.io

License: MIT License

Ruby 98.59% HTML 1.05% Shell 0.36%

karafka's Introduction

karafka logo

Build Status Gem Version Join the chat at https://slack.karafka.io

Note: We're finishing the new Karafka 2.0 but for now, please use 1.4. All the documentation presented here refers to 1.4

About Karafka

Framework used to simplify Apache Kafka based Ruby applications development.

# Define what topics you want to consume with which consumers
Karafka::App.consumer_groups.draw do
  topic 'system_events' do
    consumer EventsConsumer
  end
end

# And create your consumers, within which your messages will be processed
class EventsConsumer < ApplicationConsumer
  # Example that utilizes ActiveRecord#insert_all and Karafka batch processing
  def consume
    # Store all of the incoming Kafka events locally in an efficient way
    Event.insert_all params_batch.payloads
  end
end

Karafka allows you to capture everything that happens in your systems in large scale, providing you with a seamless and stable core for consuming and processing this data, without having to focus on things that are not your business domain.

Karafka not only handles incoming messages but also provides tools for building complex data-flow applications that receive and send messages.

How does it work

Karafka provides a higher-level abstraction that allows you to focus on your business logic development, instead of focusing on implementing lower level abstraction layers. It provides developers with a set of tools that are dedicated for building multi-topic applications similar to how Rails applications are being built.

Some things you might wonder about:

  • You can integrate Karafka with any Ruby-based application.
  • Karafka does not require Sidekiq or any other third party software (apart from Kafka itself).
  • Karafka works with Ruby on Rails but it is a standalone framework that can work without it.
  • Karafka has a minimal set of dependencies, so adding it won't be a huge burden for your already existing applications.
  • Karafka processes can be executed for a given subset of consumer groups and/or topics, so you can fine tune it depending on your business logic.

Karafka based applications can be easily deployed to any type of infrastructure, including those based on:

  • Heroku
  • Capistrano
  • Docker
  • Terraform

Support

Karafka has Wiki pages for almost everything and a pretty decent FAQ. It covers the whole installation, setup, and deployment along with other useful details on how to run Karafka.

If you have any questions about using Karafka, feel free to join our Gitter chat channel.

Getting started

If you're completely new to the subject, you can start with our "Kafka on Rails" articles series, that will get you up and running with the terminology and basic ideas behind using Kafka:

If you want to get started with Kafka and Karafka as fast as possible, then the best idea is to just clone our example repository:

git clone https://github.com/karafka/example-app ./example_app

then, just bundle install all the dependencies:

cd ./example_app
bundle install

and follow the instructions from the example app Wiki.

Note: you need to ensure, that you have Kafka up and running and you need to configure Kafka seed_brokers in the karafka.rb file.

If you need more details and know how on how to start Karafka with a clean installation, read the Getting started page section of our Wiki.

References

Note on contributions

First, thank you for considering contributing to the Karafka ecosystem! It's people like you that make the open source community such a great community!

Each pull request must pass all the RSpec specs, integration tests and meet our quality requirements.

Fork it, update and wait for the Github Actions results.

karafka's People

Contributors

mensfeld avatar nijikon avatar agwozdowski avatar pavlo-vavruk avatar webandtech avatar filiptepper avatar jwkoelewijn avatar ojab avatar robertomiranda avatar solnic avatar katafrakt avatar pavel-guseynov avatar olleolleolle avatar mmkolodziej avatar mikkelrbech avatar ronin avatar aschepis avatar rewritten avatar spape avatar prikha avatar lardcanoe avatar vbyno avatar xdamman avatar unasuke avatar dkolath avatar emile-filteau avatar afhammad avatar davydovanton avatar chaadow avatar dafeiner 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.