hyperemitter - Horizontally Scalable EventEmitter powered by a Merkle DAG

  •        14

HyperEmitter is a horizontally scalable and persistent EventEmitter powered by a Merkle DAG. (Yes, it's like a blockchain). In other contexts, this concept is also called an EventStore. HyperEmitter uses protocol-buffers, specifically mafintosh's implementation, for handling message schemas, although custom codecs are also supported. The example below can be found and ran from the examples folder; it demonstrates how to connect two HyperEmitters together and how they both receive all messages sent.

https://github.com/mcollina/hyperemitter

Dependencies:

bulk-write-stream : ^1.0.0
cuid : ^1.2.4
deep-equal : ^1.0.0
duplexify : ^3.3.0
end-of-stream : ^1.1.0
fastparallel : ^1.5.0
hyperlog : ^4.5.0
level : ^1.3.0
memdb : ^1.0.1
minimist : ^1.1.1
ndjson : ^1.3.0
protocol-buffers : ^3.0.0
pump : ^1.0.0
through2 : ^2.0.0
xtend : ^4.0.0

Tags
Implementation
License
Platform

   




Related Projects

event-store - PHP 7.1 EventStore Implementation

  •    PHP

PHP 7.1 EventStore Implementation. Prooph Event Store is capable of persisting event messages that are organized in streams. Prooph\EventStore\EventStore itself is a facade for different persistence adapters (see the list below) and adds event-driven hook points for Prooph\EventStore\Plugin\Plugins which make the Event Store highly customizable.

EventStore - The open-source, functional database with Complex Event Processing in JavaScript.

  •    CSharp

The open-source, functional database with Complex Event Processing in JavaScript.This is the repository for the open source version of Event Store, which includes the clustering implementation for high availability.

eventstore - CQRS event store using PostgreSQL for persistence

  •    Elixir

CQRS event store implemented in Elixir. Uses PostgreSQL as the underlying storage engine. Requires Elixir v1.5 and PostgreSQL v9.5 or newer.

event_bus - :surfer: Traceable, extendable and minimalist **event bus** implementation for Elixir with built-in **event store** and **event watcher** based on ETS

  •    Elixir

Traceable, extendable and minimalist event bus implementation for Elixir with built-in event store and event watcher based on ETS.

tiny-emitter - A tiny (less than 1k) event emitter library

  •    Javascript

A tiny (less than 1k) event emitter library. Alternatively, you can skip the initialization step by requiring tiny-emitter/instance instead. This pulls in an already initialized emitter.


node-eventstore - EventStore Implementation in node.js

  •    Javascript

Node-eventstore is a node.js module for multiple databases. It can be very useful as eventstore if you work with (d)ddd, cqrs, eventsourcing, commands and events, etc.

emitter - A JS EventEmitter foundation for evented code

  •    Javascript

Facebook's EventEmitter is a simple emitter implementation that prioritizes speed and simplicity. It is conceptually similar to other emitters like Node's EventEmitter, but the precise APIs differ. More complex abstractions like the event systems used on facebook.com and m.facebook.com can be built on top of EventEmitter as well DOM event systems.EventEmitter's API shares many concepts with other emitter APIs. When events are emitted through an emitter instance, all listeners for the given event type are invoked.

emitter - Event emitter component

  •    Javascript

Event emitter component. The Emitter may also be used as a mixin. For example a "plain" object may become an emitter, or you may extend an existing prototype.

nanoevents - Simple and tiny (119 bytes) event emitter library for JavaScript

  •    Javascript

Simple and tiny event emitter library for JavaScript. Methods on returns unbind function. Call it and this listener will be removed from event.

LucidJS

  •    Javascript

LucidJS is a chainable event emitter library. It offers several unique features such as set events, emitter piping, DOM node encapsulation, sub events, along with the usual event triggering and binding. LucidJS emitters also feature meta events that allow listening for event binding and event triggering. LucidJS works in both the browser and node.js.

flare - Unobtrusive event emitter API for Google Universal Analytics event tracking

  •    Javascript

flare.js, a <1KB unobtrusive event emitter API for Google Universal Analytics. With flare you can easily bind event JSON to a data-* attribute, or use flare.emit() to fire flares directly. Flare automatically calls ga('send') and constructs other properties (and arguments order) so you don't communicate with ga() directly. IE8+.Remember to drop in Google Analytics beforehand! See docs for more.

laravel-event-projector - Event sourcing for Artisans 📽

  •    PHP

Event sourcing is to data what Git is to code 1. Most applications have their current state stored in a database. By storing only the current state a lot of information is lost. You don't know how the application got in this state. Event sourcing tries to solve that problem by saving all events that happen in your app. The state of your application is built by listening to those events.

hyperlog - Merkle DAG that replicates based on scuttlebutt logs and causal linking

  •    Javascript

To replicate this log with another one simply use log.replicate() and pipe it together with a replication stream from another log.A detailed write-up on how this replication protocol works will be added to this repo in the near future. For now see the source code.

emittery - Simple and modern async event emitter

  •    Javascript

It's only ~200 bytes minified and gzipped. I'm not fanatic about keeping the size at this level though.Emitting events asynchronously is important for production code where you want the least amount of synchronous operations.

microevent.js - event emitter microlibrary - 20lines -for node and browser

  •    Javascript

MicroEvent.js is a event emitter library which provides the observer pattern to javascript objects. It works on node.js and browser. It is a single .js file containing a 20 lines class (only 321-bytes after minification+gzip). You need a single file microevent.js. Include it in a webpage via the usual script tag.

trillian - Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees

  •    Go

Trillian is an implementation of the concepts described in the Verifiable Data Structures white paper, which in turn is an extension and generalisation of the ideas which underpin Certificate Transparency.Note that Trillian requires particular applications to provide their own personalities on top of the core transparent data store functionality; example code for a certificate transparency log and for a log-derived map are included to help with this.

rails_event_store - A Ruby implementation of an Event Store based on Active Record.

  •    Ruby

It will be an exclusive (limited seats) occasion to meet Rails Event Store core team, talk with developers who are using DDD & Event Sourcing in their projects, share your experience & learn from others experience. We have the agenda ready (see below) and registration is now open! You could register here http://rescon.arkency.com This will be 3 days, each with separate Rails Event Store event and will be held from 4th to 6th of October in Wrocław, Poland (venue will be revealed soon). And one more thing! There will be a possibility to have private mentoring/code review sessions during hackathon (please contact us for details).