AndyL

AndyL

I’d like to run RabbitMQ in-process, in an Elixir umbrella app.

Is this possible? Can anyone point me to demo implementations and/or documentation?

Showing Posts 1 to 5

dimitarvp

dimitarvp

I’d really like to know myself. I don’t see much use in a storage mechanism written in Erlang/Elixir if I can’t use it in-process, especially with having in mind how mature and serious storage engines exist out there outside the BEAM ecosystem.

bottlenecked

bottlenecked

Hi there, what’s your use case? Queuing and messaging are usually naturally handled within a node using processes. If pub sub is the feature you’re looking for have a look at the Registry module, and if backpressure is what you’re after have a look at GenStage. My point is that it’s a pretty uncommon request on first look, perhaps you could give us some more details to better help you.

dimitarvp

dimitarvp

Why uncommon? Sqlite for example is always run in-process.

AndyL

AndyL OP

Uncommon? Consider: ETS vs Redis, Cowboy vs. NGINX

In-process apps like ETS and Cowboy can simplify testing, deployment, monitoring and recovery.

The use case is for AMQP clients to attach to my in-process RabbitMQ (if possible).

bottlenecked

bottlenecked

Hi, I think I see where you’re going with this; TLDR is I haven’t had any experience with such a setup and I’m sorry I can’t be of more help here.

But perhaps the other examples you mentioned are not directly comparable with this use case:

  • Cowboy / NGINX: HTTP is stateless, so shutting the server down should not impact your business other than availability of that node during restarts (like when deploying)
  • ETS / Redis: I assume that since you mention ETS and not DETS data stored there is transient (eg. like a cache) and you would not care about them being lost, so again node restarts should not have too much of an impact on your business other than perhaps minor hiccups while the caches are warmed up

But I’m not sure what guarantees one should expect from an in-proc RabbitMQ instance that maybe restarted at any time. Because in that case that would probably mean that you do not care about messages being lost on restarts, which is perhaps valid in IOT scenarios but then you might not need to carry around RabbitMQ as a dependency. If you do care about preserving messages, then you’d need to provide access to some type of permanent storage (eg. disk) for your nodes, which can be pretty limiting when deploying/scaling containers for example, and would be better off perhaps having a stable RabbitMQ VM / cluster that you’d setup once and then forget about it.

Anyway, sorry for the rant. I hope someone else here who has more experience in this matter can chime in.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews