All Projects → ExpediaGroup → stream-registry

ExpediaGroup / stream-registry

Licence: Apache-2.0 license
Stream Discovery and Stream Orchestration

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to stream-registry

godsend
A simple and eloquent workflow for streaming messages to micro-services.
Stars: ✭ 15 (-85.71%)
Mutual labels:  streams, stream-processing
Kafka Streams
equivalent to kafka-streams 🐙 for nodejs ✨🐢🚀✨
Stars: ✭ 613 (+483.81%)
Mutual labels:  streams, stream-processing
kafka-shell
⚡A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.
Stars: ✭ 107 (+1.9%)
Mutual labels:  streams, stream-processing
Go Streams
A lightweight stream processing library for Go
Stars: ✭ 615 (+485.71%)
Mutual labels:  streams, stream-processing
kerala
Distributed KV Streams
Stars: ✭ 16 (-84.76%)
Mutual labels:  streams, stream-processing
Logrange
High performance data aggregating storage
Stars: ✭ 181 (+72.38%)
Mutual labels:  streams, stream-processing
flink-connectors
Apache Flink connectors for Pravega.
Stars: ✭ 84 (-20%)
Mutual labels:  stream-processing
level-ws
A basic writable stream for abstract-level databases.
Stars: ✭ 19 (-81.9%)
Mutual labels:  streams
flowage
Easy transformations and filtering for NodeJS object streams.
Stars: ✭ 85 (-19.05%)
Mutual labels:  streams
ramen
A stream processing language and compiler for small-scale monitoring
Stars: ✭ 14 (-86.67%)
Mutual labels:  stream-processing
EsperIoT
Small and simple stream-based CEP tool for IoT devices connected to an MQTT broker
Stars: ✭ 18 (-82.86%)
Mutual labels:  stream-processing
mage
MAGE - Memgraph Advanced Graph Extensions 🔮
Stars: ✭ 89 (-15.24%)
Mutual labels:  stream-processing
Crema
Meta data server & client tools for game development
Stars: ✭ 61 (-41.9%)
Mutual labels:  metadata-management
Data-Warehouse-Automation-Metadata-Schema
Generic interface exchange format for Data Warehouse Automation and ETL generation.
Stars: ✭ 26 (-75.24%)
Mutual labels:  metadata-management
storm-ml
an online learning algorithm library for Storm
Stars: ✭ 18 (-82.86%)
Mutual labels:  stream-processing
go-streams
Stream Collections for Go. Inspired in Java 8 Streams and .NET Linq
Stars: ✭ 127 (+20.95%)
Mutual labels:  streams
talaria
TalariaDB is a distributed, highly available, and low latency time-series database for Presto
Stars: ✭ 148 (+40.95%)
Mutual labels:  stream-processing
wasm-streams
Bridging between web streams and Rust streams using WebAssembly
Stars: ✭ 61 (-41.9%)
Mutual labels:  streams
ripple
Simple shared surface streaming application
Stars: ✭ 17 (-83.81%)
Mutual labels:  stream-processing
awesome-bigdata
A curated list of awesome big data frameworks, ressources and other awesomeness.
Stars: ✭ 11,093 (+10464.76%)
Mutual labels:  stream-processing

stream-registry Build Status

StreamRegistryLogo

Announcement: 12th April 2019

We wanted to let you know that there are going to be some exciting developments with the Stream Registry project in the very near future. Stream Registry is being adopted by many brands at Expedia Group as a critical component of its digital nervous system for key streams across Expedia Group. Therefore, Vrbo stream registry is finding a new home.

What is changing

  • We will be investing in the project by expanding the existing team with full-time resources in several locations across Expedia Group. Expect greatly increased project activity: contributors, commits, issues, features, releases
  • The repository will relocate to the ExpediaGroup open source GitHub org in its entirety, preserving the history and community

What isn't changing

  • The original vision of Stream Registry as a Stream Discovery and Stream Orchestration platform
  • The project will remain open source, and will be joined shortly by other supporting Expedia Group stream platform components
  • Licenses, conduct and contribution guidelines will remain unchanged
  • The value of your contributions - please keep them coming!

We expect the start of this journey to be a little bumpy, but please bear with us as we work towards the first release of the Expedia Group Stream Registry!

About

A Stream Registry is what its name implies: it is a registry of streams. As enterprises increasingly scale in size, the need to organize and develop around streams of data becomes paramount. Synchronous calls are attracted to the edge, and a variety of synchronous and asynchronous calls permeate the enterprise. The need for a declarative, central authority for discovery and orchestration of stream management emerges. This is what a stream registry provides. In much the same way that DNS provides a name translation service for an ip address, by way of analogy, a Stream Registry provides a “metadata service” for streams. By centralizing stream metadata, a stream translation service for producer and/or consumer stream coördinates becomes possible. This centralized, yet democratized, stream metadata function thus streamlines operational complexity via stream lifecycle management, stream discovery, stream availability and resiliency.

Why Stream Registry?

We believe that as the change to business requirements accelerate, time to market pressures increase, competitive measures grow, migrations to cloud and different platforms are required, and so on, systems will increasingly need to become more reactive and dynamic in nature.

The issue of state arises.

We see many systems adopting event-driven-architectures to facilitate the changing business needs in these high stakes environments. We hypothesize there is an emerging need for a centralized "stream metadata" service in the industry to help streamline the complexities and operations of deploying stream platforms that serve as a distributed federated nervous system in the enterprise.

What is Stream Registry?

Put simply, Stream Registry is a centralized service for stream metadata.

The stream registry can answer the following question:

  1. Who owns the stream?
  2. Who are the producers and consumers of the stream?
  3. Management of stream replication across clusters and regions
  4. Management of stream storage for permanent access
  5. Management of stream triggers for legacy stream sources

Architecture

StreamRegistryArchitecture

See the architecture/northstar documentation for more details.

Building locally

Stream Registry is built using OpenJDK 11 and Maven.

Stream Registry is currently packaged as a shaded JAR file. We leave specific deployment considerations up to each team since this varies from enterprise to enterprise.

To build Stream Registry as a JAR file, please run

./mvnw clean package

Start Stream Registry

Required Local Environment
The local 'dev' version of Stream Registry requires a locally running version of Apache Kafka and Confluent's Schema Registry on ports 9092 and 8081, respectively.

To quickly get a local dev environment set up, we recommend to use Docker Compose.

Alternatively, one can start Confluent Platform locally after downloading the Confluent CLI and running the following command. Note: The confluent command is currently only available for macOS and Linux. If using Windows, you'll need to use Docker, or run ZooKeeper, Kafka, and the Schema Registry all individually.

confluent start zookeeper
confluent start kafka
confluent start schema-registry

Stream Registry can then be started.

Once Stream Registry has started, check that the application's GraphiQL server is running at http://localhost:8080/graphiql

Kafka Version Compatibility

Stream Registry development and initial deployment started with Kafka 0.11.0 / Confluent Platform 3.3.0, and has also been deployed against Kafka 1.1.1 / Confluent Platform 4.1.2.
As per the Kafka Compatibility Matrix, we expect Stream Registry to be compatbile with Kafka 0.10.0 and newer, and the internal Java Kafka clients used by Stream Registry can be found in the pom.xml.

Run Unit Tests

./mvnw clean test

Contributors

Special thanks to the following for making stream-registry possible at Vrbo and beyond!

Adam Westerman
Adam Westerman

💻
Arun Vasudevan
Arun Vasudevan

💻 🎨
Nathan Walther
Nathan Walther

💻 👀
Jordan Moore
Jordan Moore

💻 💁
Carlos Cordero
Carlos Cordero

💻
Ishan Dikshit
Ishan Dikshit

💻 📖
Vinayak Ponangi
Vinayak Ponangi

💻 📢 🎨 👀
Prabhakaran Thatchinamoorthy
Prabhakaran Thatchinamoorthy

💻 🎨
Rui Zhang
Rui Zhang

💻
Miguel Lucero
Miguel Lucero

💻 💁
René X Parra
René X Parra

💻 📖 📝 📢 🎨 👀

This project follows the all-contributors specification.

Legal

This project is available under the Apache 2.0 License.

Copyright 2018-2019 Expedia, Inc.

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].