Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consumer: let the user choose cluster topology #22

Conversation

Annopaolo
Copy link
Collaborator

@Annopaolo Annopaolo commented Nov 26, 2024

Allow users of this framework to setup the clustering as they prefer. This way, we don't force a choice.
Expose the cluster_topologies option that can be populated with libcluster topologies.

Based on #21

noaccOS and others added 6 commits August 21, 2024 12:47
put registry names scoped to parent module instead of under the global
`Registry` name

this way
1. registry ids are scoped to their parent module
2. it is consistent with the rest of the code, like `MessageTracker.Supervisor`

Signed-off-by: Francesco Noacco <francesco.noacco@secomind.com>
Replace Kernel's Registry and DynamicSupervisor modules
with Horde's distributed versions.

We still need to set up clustering with libcluster next.

A fork of horde is used instead of the version from hex because
of a bug where `extra_arguments` is not passed as a parameter to the
processes in a DynamicSupervisor

Signed-off-by: Francesco Noacco <francesco.noacco@secomind.com>
set up clustering using libcluster

the topologies will be defined in a second iteration

Signed-off-by: Francesco Noacco <francesco.noacco@secomind.com>
Use Horde's `process_redistribution` flag to
enable automatic sharding (and resharding) of
processes on cluster events.
This allows for almost seamless autoscaling,
as processes will be terminated and restarted
on different Erlang nodes.

Use the grain-like nature of AMQPDataConsumers
to support spawining (re-)sharded consumers both
on single and multi node Erlang clusters.

Based on secomind#15.

Signed-off-by: Arnaldo Cesco <arnaldo.cesco@secomind.com>
Allow users of this framework to setup the clustering
as they prefer. This way, we don't force a choice.
Expose the `cluster_topologies` option that can be
populated with libcluster topologies.

Signed-off-by: Arnaldo Cesco <arnaldo.cesco@secomind.com>
Signed-off-by: Arnaldo Cesco <arnaldo.cesco@secomind.com>
@Annopaolo
Copy link
Collaborator Author

Superseded by progress in #15.

@Annopaolo Annopaolo closed this Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants