hugoestr
Is there an Elixir alternative to Apache Camel?
Hi,
We are exploring creating an integration system to connect and communicate with systems outside of our company. We are leaning towards adopting Apache Camel. However, a few of us would rather work with the Beam than the JVM.
Is there any integration system in Elixir that is similar to Apache Camel? I have tried searching, but search is sort of broken on the internet right now. I am getting a lot of garbage pages. I am going to keep looking, though.
That said, if someone in the Elixir community knows the answer, that would be awesome. I would love to add that hypothetical framework to the proposal
Most Liked
jdiago
Never heard of Camel before but had a peek at the docs…
Instead of “Elixir alternative to Camel,” I think the better question to ask is: What are you trying to do in Camel and how can you do that with Elixir instead?
Just from skimming the docs, I see hints of plain Elixir/OTP features, Phoenix, and GenStage/Broadway.
Take this reply with a grain of salt. I am biased. I cringed when I saw “Enterprise Integration Pattern.”
rhcarvalho
If you have existing dependencies written in Java or other JVM language, or the “enterprisey” aspect is guiding the decision, maybe the BEAM or anything else might be a hard sell.
But it seems there’s room for proposing alternatives, in which case you could compare the many patterns of message-based communication listed in EIPs :: Apache Camel with native/equivalent solutions in the BEAM (as in previous answers in the thread).
Reminds me of that slide comparing BEAM with other stacks, how it replaces a lot of separate components. The legendary talk The Soul of Erlang & Elixir by Saša Jurić https://youtu.be/JvBT4XBdoUE?si=pyKU-_EOHzrTsH1Q&t=36m40s.
Good luck!
hugoestr
Thanks so much for your response. I think this was very useful. I am going to explore and present Elixir/Beam as an alternative.
jswanner
There’s always JInterface (kind of kidding, I have no experience with it)…
krasenyp
I’d say use Camel as a glue to move messages from external systems to internally managed RabbitMQ and the use Elixir for processing.
This was a feasible approach a few years back and I can only imagine Camel getting better since then.







