{"repo":"Indemos/Distribution","free":true,"listed":false,"github":"https://github.com/Indemos/Distribution","clone":"git clone https://github.com/Indemos/Distribution.git","description":"General purpose virtual actor framework for peer-to-peer microservices or in-process communication within the same app with possible extension to blockchains.","language":"C#","stars":14,"topics":["distributed-systems","actors","actor-model","actor-framework","mediator","microservices","udp","cluster","cloud","blockchain"],"license":"MIT","category":"blockchain-web3","readme_excerpt":"Distribution - Virtual Actor Framework There is decent amount of actor-like frameworks, including those that support an idea of Virtual Actors, e.g. Orleans and Proto.Actor The two mentioned frameworks are the most flexible but have some drawbacks, like extra build step or inability to use different transport protocol. Below is the list of features built in the current framework. Each of them can be considered as an advantage or a disadvantage depending on specific use-case. Status For virtual actors and reactive store For clusters and interserver communication Features - Safe single-threaded execution in a background worker without locks - Zero configuration - Local actors and store are cross-platform .NET Standard 2.0 - UDP broadcasting for automatic service discovery without a single point of failure - Peer-To-Peer network of independent nodes without consensus leaders - Random placement of virtual actors within a cluster - Ability to create multiple instances of the same type of actor using unique ID - Ability to override any layer, including protocol, actor placement strategy, service discovery, etc - No dangerous binary serialization or 3rd party serialization libraries - Simple C# POCO structs for messages, no attributes or other decorators - Process messages using single or multiple actors with [Subscription] attribute - Kestrel server middleware to process message queries - Automatic loading and mapping for actors and messages at startup Sample This is an example of ","default_branch":null,"files":null,"tree":[],"storefront":"/r/Indemos","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Indemos/Distribution/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}