Giter Club home page Giter Club logo

dagger's Introduction

Dagger

build workflow package workflow License Version

Dagger or Data Aggregator 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. With Dagger, you don't need to write custom applications or manage resources to process data in real-time. Instead, you can write SQLs to do the processing and analysis on streaming data.

Key Features

Discover why to use Dagger

  • Processing: Dagger can transform, aggregate, join and enrich Protobuf data in real-time.
  • Scale: Dagger scales in an instant, both vertically and horizontally for high performance streaming sink and zero data drops.
  • Extensibility: Add your own sink to dagger with a clearly defined interface or choose from already provided ones.
  • Pluggability: Add custom business logic in form of plugins (UDFs, Transformers, Preprocessors and Post Processors) independent of the core logic.
  • Metrics: Always know what’s going on with your deployment with built-in monitoring of throughput, response times, errors and more.

What problems Dagger solves?

To know more, follow the detailed documentation.

Usage

Explore the following resources to get started with Dagger:

  • Guides provides guidance on creating Dagger with different sinks.
  • Concepts describes all important Dagger concepts.
  • Advance contains details regarding advance features of Dagger.
  • Reference contains details about configurations, metrics and other aspects of Dagger.
  • Contribute contains resources for anyone who wants to contribute to Dagger.
  • Usecase describes examples use cases which can be solved via Dagger.

Running locally

Make sure you have Java8 and local kafka-2.4+ setup pre-installed on your local machine.

# Clone the repo
$ git clone https://github.com/odpf/dagger.git  

# Build the jar
$ ./gradlew clean build 

# Configure env variables
$ cat dagger-core/env/local.properties

# Run a Dagger
$ ./gradlew dagger-core:runFlink

Note: Sample configuration for running a basic dagger can be found here. For detailed configurations, refer here.

Find more detailed steps on local setup here.

Running on cluster

Refer here for details regarding Dagger deployment.

Running tests

# Running unit tests
$ ./gradlew clean test

# Run code quality checks
$ ./gradlew checkstyleMain checkstyleTest

# Cleaning the build
$ ./gradlew clean

Contribute

Development of Dagger happens in the open on GitHub, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Dagger.

Read our contributing guide to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes to Dagger.

To help you get your feet wet and get you familiar with our contribution process, we have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started.

Credits

This project exists thanks to all the contributors.

License

Dagger is Apache 2.0 licensed.

dagger's People

Contributors

prakharmathur82 avatar arujit avatar gauravsinghania avatar mayurgubrele avatar jesrypandawa avatar lavkesh avatar kn-sumanth avatar nncrawler avatar sravankorumilli avatar rajarammallya avatar ankittw avatar rohilsurana avatar ravisuhag avatar deepakmarathe avatar tygrash avatar seahleyi avatar lewisxin avatar anukin avatar dmitrysmorodinnikov avatar karrtikiyer-tw avatar kevinbhedag avatar alirizwi avatar ujjawaldx avatar kevinbheda 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.