horde
libcluster
horde | libcluster | |
---|---|---|
5 | 10 | |
1,250 | 1,886 | |
- | - | |
5.8 | 6.4 | |
17 days ago | 5 months ago | |
Elixir | Elixir | |
MIT License | MIT License |
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
libcluster
-
Elixir clustering using Postgres
libcluster is the go-to package for connecting multiple BEAM instances and setting up healing strategies. libcluster provides out-of-the-box strategies and it allows users to define their own strategies by implementing a simple behavior that defines cluster formation and healing according to the supporting service you want to use.
- Phoenix 1.7 for Elixir: Edit a Form in a Modal
- Elixir for Ruby developers: the three most important differences
-
cannot query kubernetes (unauthorized): endpoints is forbidden: User cannot list endpoints in the namespace
I am using libcluster to connect my nodesI get the following error:
-
We used Elixir's Observer to hunt down bottlenecks
Distributed Elixir can be done with Docker containers too, see https://github.com/bitwalker/libcluster which by default has some Kubernetes support but you can also have third party (or custom) clustering strategies. I've not done this myself but I've seen articles about this a lot during the past years.
Hot code updates for most applications aren't really worth it in my opinion, assuming you do something like blue/green rollover deployments. It's cool that it's possible though. But it requires appup files and afaik Distillery is one of the release tools that has support for it built-in.
-
If you were in charge of a startup tech stack, how would you use elixir to actually scale and make every work seamlessly?
On the deployment level, you can use synchronous communication using API-based solutions or asynchronous communication using external solutions (RabbitMQ, Kafka,...) or Erlang/Elixir tools (message passing, pg2, PubSub, Libcluster,...)
- Nodes
- Nodes Elixir
-
Clustering nodes with different basenames
Looking throught libcluster code (https://github.com/bitwalker/libcluster/blob/master/lib/strategy/kubernetes_dns.ex#L150) it does seem to require that both nodes share the same basename.
-
Building a Distributed Turn-Based Game System in Elixir
libcluster – Automatic cluster formation/healing for Elixir applications.
What are some alternatives?
libgit2 - A cross-platform, linkable library implementation of Git that you can use in your application.
Nomad - Elixir/Phoenix Cloud SDK and Deployment Tool
Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications
Kubex - Kubex is the kubernetes integration for Elixir projects and it is written in pure Elixir.
tictac - Demonstration of building a clustered, distributed, multi-player, turn-based game server written in Elixir.
ex_aws - A flexible, easy to use set of clients AWS APIs for Elixir
citus - Distributed PostgreSQL as an extension
erlcloud - AWS APIs library for Erlang (Amazon EC2, S3, SQS, DDB, ELB and etc)
Phoenix - Peace of mind from prototype to production
discovery - An OTP application for auto-discovering services with Consul
wireguard-vyatta-ubnt - WireGuard for Ubiquiti Devices
Cloudi - A Cloud at the lowest level!