All Projects → linkedin → Brooklin

linkedin / Brooklin

Licence: bsd-2-clause
An extensible distributed system for reliable nearline data streaming at scale

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Brooklin

Materialize
Materialize lets you ask questions of your live data, which it answers and then maintains for you as your data continue to change. The moment you need a refreshed answer, you can get it in milliseconds. Materialize is designed to help you interactively explore your streaming data, perform data warehousing analytics against live relational data, or just increase the freshness and reduce the load of your dashboard and monitoring tasks.
Stars: ✭ 3,341 (+400.15%)
Mutual labels:  kafka, distributed-systems
Gauntlet
🔖 Guides, Articles, Podcasts, Videos and Notes to Build Reliable Large-Scale Distributed Systems.
Stars: ✭ 336 (-49.7%)
Mutual labels:  distributed-systems, scalability
nebula
A distributed, fast open-source graph database featuring horizontal scalability and high availability
Stars: ✭ 8,196 (+1126.95%)
Mutual labels:  distributed-systems, scalability
Thespian
Python Actor concurrency library
Stars: ✭ 220 (-67.07%)
Mutual labels:  scalability, distributed-systems
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
Stars: ✭ 4,445 (+565.42%)
Mutual labels:  kafka, distributed-systems
Faust
Python Stream Processing. A Faust fork
Stars: ✭ 124 (-81.44%)
Mutual labels:  kafka, distributed-systems
reacted
Actor based reactive java framework for microservices in local and distributed environment
Stars: ✭ 17 (-97.46%)
Mutual labels:  distributed-systems, scalability
Awesome Scalability
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Stars: ✭ 36,688 (+5392.22%)
Mutual labels:  scalability, distributed-systems
Faust
Python Stream Processing
Stars: ✭ 5,899 (+783.08%)
Mutual labels:  kafka, distributed-systems
Cloudi
A Cloud at the lowest level!
Stars: ✭ 352 (-47.31%)
Mutual labels:  scalability, distributed-systems
Vertx In Action
Examples for the Manning "Vert.x in Action" book
Stars: ✭ 134 (-79.94%)
Mutual labels:  scalability, distributed-systems
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+597.9%)
Mutual labels:  scalability, distributed-systems
Orleans
Orleans is a cross-platform framework for building distributed applications with .NET
Stars: ✭ 8,131 (+1117.22%)
Mutual labels:  scalability, distributed-systems
Gosiris
An actor framework for Go
Stars: ✭ 222 (-66.77%)
Mutual labels:  kafka, distributed-systems
Awesome Scalability Toolbox
My opinionated list of products and tools used for high-scalability projects
Stars: ✭ 34 (-94.91%)
Mutual labels:  scalability, distributed-systems
Systemizer
A system design tool that allows you to simulate data flow of distributed systems.
Stars: ✭ 1,219 (+82.49%)
Mutual labels:  distributed-systems, scalability
Microservices Connector
Inter-Service communication framework, support for microservice architecture and distributed system
Stars: ✭ 17 (-97.46%)
Mutual labels:  scalability, distributed-systems
ring-election
A node js library with a distributed leader/follower algorithm ready to be used
Stars: ✭ 92 (-86.23%)
Mutual labels:  distributed-systems, scalability
Dnpipes
Distributed Named Pipes
Stars: ✭ 452 (-32.34%)
Mutual labels:  kafka, distributed-systems
Reactivemanifesto
The Reactive Manifesto
Stars: ✭ 542 (-18.86%)
Mutual labels:  scalability, distributed-systems

= Brooklin

image:https://img.shields.io/github/license/linkedin/brooklin.svg[link="https://github.com/linkedin/brooklin/blob/master/LICENSE"] image:https://img.shields.io/badge/bintray-v1.0.2-blue.svg?style=popout[link="https://bintray.com/linkedin/maven/brooklin"] image:https://img.shields.io/gitter/room/linkedin/kafka.svg?style=popout[link="https://gitter.im/linkedin/brooklin"] image:https://img.shields.io/github/last-commit/linkedin/brooklin.svg?style=popout[link="https://github.com/linkedin/brooklin/commits/master"] image:https://img.shields.io/github/issues/linkedin/brooklin/bug.svg?color=orange?style=popout[link="https://github.com/linkedin/brooklin/labels/bug"]

image::images/brooklin-overview.svg[Brooklin Overview] {empty} + Brooklin is a distributed system intended for streaming data between various heterogeneous source and destination systems with high reliability and throughput at scale. Designed for multitenancy, Brooklin can simultaneously power hundreds of data pipelines across different systems and can easily be extended to support new sources and destinations.

== Distinguishing features

  • Extensible for any source and destination

** Brooklin offers a flexible API that can be extended to support a wide variety of source and destination systems. It is not confined to single type of source or destination system. ** Source and destination systems can be freely mixed and matched. They do not have to be the same.

  • Scalable ** Brooklin supports creating an arbitrary number of data streams that are processed concurrently and independently such that errors in one stream are isolated from the rest. ** Brooklin supports partitioned data streams throughout its core implementation and APIs. ** Brooklin can be deployed to a cluster of machines (scale out) to support as many data streams as desired.

  • Easy to operate and manage ** Brooklin exposes a REST endpoint for managing data streams, that offers a rich set of operations on them in addition to CRUD (e.g. pause and resume). ** Brooklin also exposes a diagnostics REST endpoint that enables on-demand querying of a data stream's status.

  • Battle-tested at scale with Kafka ** While it is not limited to any particular system, Brooklin provides capabilities for reading/writing massive amounts of data to/from Kafka with high reliability at scale. You can learn more about this in the <> section.

  • Supports Change Data Capture with bootstrap ** Brooklin supports propagating https://en.wikipedia.org/wiki/Change_data_capture[Change Data Capture] events from data stores, e.g. RDBMS, KV stores ... etc. ** Brooklin also supports streaming a snapshot of the existing data before propagating change events.

== Use cases === Mirroring Kafka clusters

  • Multitenancy

A single Brooklin cluster can be used to mirror data across several Kafka clusters.

  • Fault isolation across topic partitions

One bad partition will not affect an entire Kafka topic. Mirroring will continue for all the other healthy partitions.

  • Whitelisting topics using regular expressions

Select the topics to mirror using regular expression patterns against their names.

  • Pausing and resuming individual partitions

Through its https://github.com/linkedin/brooklin/wiki/Brooklin-Architecture#rest-endpoints[Datastream Management Service (DMS)], Brooklin exposes REST APIs that allow finer control over replication pipelines, like being able to pause and resume individual partitions of a Kafka topic.

Check out https://github.com/linkedin/brooklin/wiki/mirroring-kafka-clusters[Mirroring Kafka Clusters] to learn more about using Brooklin to mirror Kafka clusters.

=== Change Data Capture

  • Brooklin supports propagating https://en.wikipedia.org/wiki/Change_data_capture[Change Data Capture] events from data stores, e.g. RDBMS, KV stores ... etc.
  • Brooklin supports bootstrapping data from a datastore, i.e. streaming a snapshot of the existing data before any change events.
  • MySQL support is currently under development.

=== Stream processing bridge

== Trying out Brooklin Feel free to check out our https://github.com/linkedin/brooklin/wiki/test-driving-brooklin[step-by-step tutorials] for running Brooklin locally in a few example scenarios.

== Documentation https://github.com/linkedin/Brooklin/wiki[Brooklin Wiki Pages]

== Community

== Contributing

== License Copyright (c) LinkedIn Corporation. All rights reserved. Licensed under the https://github.com/linkedin/brooklin/blob/master/LICENSE[BSD 2-Clause] License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].