All Projects → matheusmosca → walrus

matheusmosca / walrus

Licence: Apache-2.0 license
🕑 Real-time event streaming platform built on top of gRPC streams

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to walrus

grpc-chat
Simple Chat Server/Client implemented with gRPC
Stars: ✭ 107 (+613.33%)
Mutual labels:  grpc-go
newsletter
Observer done right
Stars: ✭ 13 (-13.33%)
Mutual labels:  publish-subscribe
SEPA
Get notifications about changes in your SPARQL endpoint.
Stars: ✭ 21 (+40%)
Mutual labels:  publish-subscribe
kubernetes-go-grpc
Microservices using Go, gRPC and Kubernates
Stars: ✭ 35 (+133.33%)
Mutual labels:  grpc-go
angular-PubSub
Angular 1.x implementation of the Publish–Subscribe pattern.
Stars: ✭ 32 (+113.33%)
Mutual labels:  publish-subscribe
payload
A javascript single page application (SPA) driver for REST API payload management.
Stars: ✭ 16 (+6.67%)
Mutual labels:  publish-subscribe
savetheworldwithgo
Build systems with Go examples
Stars: ✭ 81 (+440%)
Mutual labels:  grpc-go
Wisper
A micro library providing Ruby objects with Publish-Subscribe capabilities
Stars: ✭ 3,014 (+19993.33%)
Mutual labels:  publish-subscribe
uorb
C++ inter-thread publish/subscribe middleware ported from PX4 and redesigned based on POSIX
Stars: ✭ 35 (+133.33%)
Mutual labels:  publish-subscribe
emitter-queue
😴 Queue emitter events
Stars: ✭ 16 (+6.67%)
Mutual labels:  publish-subscribe
Prototool
Your Swiss Army Knife for Protocol Buffers
Stars: ✭ 4,932 (+32780%)
Mutual labels:  grpc-go
eda
eda is a library for implementing event-driven architectures.
Stars: ✭ 31 (+106.67%)
Mutual labels:  publish-subscribe
talek
a Private Publish Subscribe System
Stars: ✭ 39 (+160%)
Mutual labels:  publish-subscribe
dalal-street-server
Server for Pragyan's Dalal Street
Stars: ✭ 65 (+333.33%)
Mutual labels:  grpc-go
zeroin
The only Event Emitter you need
Stars: ✭ 19 (+26.67%)
Mutual labels:  publish-subscribe
raft-grpc-example
Example code for how to get hashicorp/raft running with gRPC
Stars: ✭ 83 (+453.33%)
Mutual labels:  grpc-go
hermes
ZMQ-based framework for building Pub-Sub Systems, written in Python 3.
Stars: ✭ 13 (-13.33%)
Mutual labels:  publish-subscribe
Open62541
Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0
Stars: ✭ 1,643 (+10853.33%)
Mutual labels:  publish-subscribe
Magic-Leap-Gesture-IoT-Example
Control lights in the physical world from the augmented world using hand gestures. Using Magic Leap Hand Poses (Gestures) and PubNub.
Stars: ✭ 18 (+20%)
Mutual labels:  publish-subscribe
PubBus
A simple implementation of a MessageBus.
Stars: ✭ 19 (+26.67%)
Mutual labels:  publish-subscribe

Walrus

🕑 Real-time event streaming platform built on top of gRPC streams

Table of Contents
  1. About the project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License

About the Project

Built With

How it works

Walrus uses pub/sub pattern to allow applications to subscribe to specific topics. A topic is any event or a concern that can happen on your systems, it can be a new account that was just created, or a credit card purchase. So any application that wants to be notified by new events, it will just need to subscribe to this topic. To make it possible, Walrus offers an rpc method called Subscribe which any service can call to establish a gRPC connection and start to listen for a server side message stream. Then, when a new event happen, any application can call the Publish rpc method to publish this event through Walrus that will send it to all subscriptions based on the event's topic.

walrus pub/sub architecture explained

Getting Started

All you should know to run Walrus locally.

Prerequisites

How to run

Locally

  1. Clone the repo
    git clone https://github.com/matheusmosca/walrus.git
  2. Run the server
    make run-server
  3. Create generated files
    make generate

Docker

  1. Build image
    docker build --tag walrus .
  2. Run the server in a container exposing the default port
    docker run -d --name walrus-test --publish 3000:3000 walrus
  3. See the logs live
    docker logs --follow walrus-test
  4. To stop the container run
    docker stop walrus-test

You can test the server running the examples, first the subscriber, then the publisher.

Testing

make test

Usage

TODO

Contributing

Take a look at the open issues and let a comment on them if you want to help somehow. Feel free to share your ideas or report bugs by opening a new issue as well. Any contributions you make are really appreciated and I would love to review your pull requests. ❤️

License

Distributed under the APACHE-2.0 License. See LICENSE for more information.

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