All Projects → treescale → Treescale

treescale / Treescale

Licence: mit
Event/Data distribution system without any configuration, but with data delivery guarantees

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Treescale

Event Gateway
React to any event with serverless functions across clouds
Stars: ✭ 1,604 (+460.84%)
Mutual labels:  event-driven, pubsub
evon
Fast and versatile event dispatcher code generator for Golang
Stars: ✭ 15 (-94.76%)
Mutual labels:  pubsub, event-driven
Dapr
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
Stars: ✭ 16,274 (+5590.21%)
Mutual labels:  event-driven, pubsub
incubator-eventmesh
EventMesh is a dynamic event-driven application runtime used to decouple the application and backend middleware layer, which supports a wide range of use cases that encompass complex multi-cloud, widely distributed topologies using diverse technology stacks.
Stars: ✭ 939 (+228.32%)
Mutual labels:  pubsub, event-driven
Rele
Easy to use Google Pub/Sub
Stars: ✭ 164 (-42.66%)
Mutual labels:  event-driven, pubsub
sol
Lightweight MQTT broker, written from scratch. IO is handled by a super simple event loop based upon the most common IO multiplexing implementations.
Stars: ✭ 72 (-74.83%)
Mutual labels:  pubsub, event-driven
ev
Lightweight event-loop library based on multiplexing IO
Stars: ✭ 15 (-94.76%)
Mutual labels:  event-driven
Suzieq
A framework and application for network observability
Stars: ✭ 266 (-6.99%)
Mutual labels:  infrastructure
UnityRawInput
Windows Raw Input wrapper for Unity game engine
Stars: ✭ 129 (-54.9%)
Mutual labels:  event-driven
eventify
Lightweight Module for Asynchronous Event Driven Systems
Stars: ✭ 14 (-95.1%)
Mutual labels:  event-driven
Haskell.nix
Alternative Haskell Infrastructure for Nixpkgs
Stars: ✭ 283 (-1.05%)
Mutual labels:  infrastructure
Graphik
Graphik is a Backend as a Service implemented as an identity-aware document & graph database with support for gRPC and graphQL
Stars: ✭ 277 (-3.15%)
Mutual labels:  pubsub
Emitter
High performance, distributed and low latency publish-subscribe platform.
Stars: ✭ 3,130 (+994.41%)
Mutual labels:  pubsub
pagkibot
Discord bot for instant Twitch live notifications using Twitch's PubSub API.
Stars: ✭ 25 (-91.26%)
Mutual labels:  pubsub
Eventeum
A resilient Ethereum event listener that bridges your smart contract events and backend microservices
Stars: ✭ 272 (-4.9%)
Mutual labels:  event-driven
infra
🚀 INFRA: your infrastructure as a GraphQL service
Stars: ✭ 48 (-83.22%)
Mutual labels:  infrastructure
Wisper
A micro library providing Ruby objects with Publish-Subscribe capabilities
Stars: ✭ 3,014 (+953.85%)
Mutual labels:  pubsub
pubsubbeat
An Elastic Beat to ingest data from Google Pub/Sub
Stars: ✭ 40 (-86.01%)
Mutual labels:  pubsub
Around Dataengineering
A Data Engineering & Machine Learning Knowledge Hub
Stars: ✭ 257 (-10.14%)
Mutual labels:  infrastructure
Xcat Core
Code repo for xCAT core packages
Stars: ✭ 273 (-4.55%)
Mutual labels:  infrastructure

TreeScale: Highly scalable PubSub system

TreeScale structure animation

TreeScale is a technology which allows to build real-time PubSub applications with highly-scalable architecture, using Math Tree/Graph-based scalability instead of standard horizontal scalability.

The goals and main philosophy behind TreeScale:

  1. Keep always alive TCP connections - This principle allows to avoid infinite request/response cycles, and giving more network efficiency, faster fail detection, and more secure communication.
  2. Completely Decentralized Services - Decentralized services are the key for infinite scalability and maximum performance, where one application is fully independent from another application and the base communication made by event handle/emmit.
  3. Stay Platform and Technology Independent - The abstraction layer over infrastructure should be independent from application technology stack and all kind of data transfer should be packaged as an event for safe distribution, transfer, broadcasting.

Building

For building from source you will need Rust language installed. There is only one command for building this project on all platforms which is supported by Rust.

This project is mainly tested on Linux, BSD, Windows, macOS and Android (experimental).

~# git clone https://github.com/treescale/treescale
~# cd treescale

# Building with Rust package manager
~# cargo build --release

# After building see what we have now!
~# ./target/release/treescale --help

Roadmap for release

  • [x] Distributed Tree/Graph structure with automatic lookup
  • [x] Event path calculation between Tree/Graph nodes
  • [x] API client subscriptions for each node and event delivery
  • [x] Event broadcasting and round robin load balancing using stateful path calculation
  • [ ] API Libraries for major programming languages (JavaScript, Go, Java, Python etc...)
  • [ ] Queue system for each node with persistent storage (probably using RocksDB Key-Value database)
  • [ ] Benchmarking with existing PubSub platforms
  • [ ] Mobile integration for real time massive data delivery (already tested!)

Contributions are welcome!

This project written in Rust because it is giving real guaranties for preventing data races and completely handles memory management without garbage collection, which is giving huge performance improvements and low memory usage.

Project structure is simple, and everything is wrapped around single Node structure and associated traits.

Feel free to send pull request, open an issue even if it's not a code improvements.

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