horde
ra
horde | ra | |
---|---|---|
5 | 7 | |
1,250 | 778 | |
- | 0.4% | |
5.8 | 8.9 | |
17 days ago | 3 days ago | |
Elixir | Erlang | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
horde
-
Elixir for Ruby developers: the three most important differences
[^3]: https://github.com/derekkraan/horde
- People (even open source maintainers) have lives and jobs and other interests
-
Question about a Decentralized Timeline
CRDTs are one solution to “eventual consistency”. Horde is one option: https://github.com/derekkraan/horde
-
Building a Distributed Turn-Based Game System in Elixir
Horde – Elixir library that provides a distributed and supervised process registry.
-
Write libraries instead of services, where possible
No, typically you register a node and instruct it on what processes to run. But there are libraries to help instrument this kind of behavior.
For elixir:
- https://github.com/derekkraan/horde
- https://github.com/bitwalker/swarm
ra
-
The Erlang Runtime System
Erlang/OTP doesn't handle leader election, and by itself is bad at handling netsplits.
There is https://github.com/rabbitmq/ra which is a Raft implementation in Erlang that is Jepsen-tested. You could use it to build "etcd in Erlang", or https://github.com/rabbitmq/khepri which is built on top of Ra.
-
Ask HN: Good examples of fault-tolerant Erlang code?
Just to add to this, there are some implementations of things like consensus algorithms in Erlang such as Ra: https://github.com/rabbitmq/ra
- Elixir at Ramp
-
An Animated Introduction to Elixir
You may find these interesting...
- "The Onion Layer Theory" https://learnyousomeerlang.com/building-applications-with-ot...
- "On Erlang, State and Crashes" http://jlouisramblings.blogspot.com/2010/11/on-erlang-state-...
- "Why Restarting Works" https://ferd.ca/the-zen-of-erlang.html (search for "Heisenbug")
> you should store the state in the external system
Disk works too, but if you're multi-node this means you now have a distributed database embedded in your system, which may or may not be your goal :)
RabbitMQ does this, they developed a library for "persistent, fault-tolerant and replicated state machines" based on Raft: https://github.com/rabbitmq/ra.
- Question about a Decentralized Timeline
-
Building Aggregates in Elixir and PostgreSQL
Here is link number 1 - Previous text "Ra"
What are some alternatives?
libcluster - Automatic cluster formation/healing for Elixir applications
lasp - Prototype implementation of Lasp in Erlang.
libgit2 - A cross-platform, linkable library implementation of Git that you can use in your application.
MicroRaft - Feature-complete implementation of the Raft consensus algorithm in Java
Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications
khepri - Khepri is a tree-like replicated on-disk database library for Erlang and Elixir.
tictac - Demonstration of building a clustered, distributed, multi-player, turn-based game server written in Elixir.
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
citus - Distributed PostgreSQL as an extension
Atomix - A Kubernetes toolkit for building distributed applications using cloud native principles
Phoenix - Peace of mind from prototype to production
buffstreams - A library to simplify writing applications using TCP sockets to stream protobuff messages