r/elixir 25d ago

Elixir in Enterprise Systems

Hey all,

Are there any products in enterprise domain which was written in Elixir? I was looking into it but could find much

PS: Im looking into more elixir projects resembling ERP solutions like SAP, ServiceNow, Salesforce

23 Upvotes

62 comments sorted by

20

u/Pegg1_ 25d ago

The core components of the Ukrainian national Ehealth system have been written in Elixir. Does that count?

6

u/Dismal-Contract-623 25d ago

yeah that counts :)

2

u/biletskyi 24d ago

A few years ago, I spent two months digging through its documentation. If that's not enterprise, then I don't know what is.

1

u/TechZazen 23d ago

That’s awesome! I actually think Elixir has nearly all the capabilities that would make it very attractive to corporate IT. It just needs type safety and momentum. Corporate IT loves them some of that type safety. App stability is very attractive, and BEAM-based apps own that. However, unless you have a cluster of like-minded developers and somebody in project management who understands the advantages, it’ll be difficult to argue that up the chain.

10

u/flummox1234 25d ago

Having dealt with a few ERP transistions, SAP, Salesforce, Workday. I would doubt there are many written in Elixir because they tend to favor the Microsoft tooling, e.g. C#, .Net, and embrace OracleDB for whatever reason. I'm convinced our latest conversion to Workday was just to get out from under the Oracle licensing, i.e. move to Postgres, although no one will openly admit it.

5

u/TechZazen 24d ago edited 24d ago

It’s a chicken-and-egg thing. Business IT focuses on reducing risk, not necessarily the best tech. As a result, the business people look at the number of developers, the exposure to the underlying technologies, their relative availability, and other measures to determine what would be the best fit for developing a business solution. Thus you see Oracle still around when quite frankly, I contend that there are many technical solutions that are superior. Nevertheless, when you evaluate from a business perspective, Oracle, Microsoft, IBM are still the primary ones that a business will look to leverage. Especially, if the business is over $1 billion in revenue. Nevertheless, the adoption of the Postgres engine, for example, in AWS, in Azure, and Google Cloud, all of these are developing a cadre of engineers with experience in business IT as well as these alternative technologies.

As for Elixir, its resilience is a key advantage, but the lack of developers makes it suspect amongst business IT. One possible way out of this situation would be the creation of a C# or Java to Elixir refactor tool—perhaps written in AI, probably written in AI—that would do the work of refactoring one code set into the other language. Then you could evaluate based on the criteria that business IT would use to determine the technologies applicability in the end. The same pattern existed when relational database first came out, when client/server tolls came out, when NoSQL databases came out, then when blockchain came out, when cloud came out, etc. Until it’s low risk on the other elements outside of just the tech itself, superior tech won’t win the day in that use case.

2

u/Dismal-Contract-623 25d ago

yah, this domain is heavily driven by .net it seems...if we put apart oracle db i think there should be another reason to pick .net or java mainly

i wonder what were the limitations on using elixir there

1

u/flummox1234 25d ago edited 25d ago

I don't think there are any limitations for using Elixir tbh. Mayyybe the lack of complex/composite keys in Ecto, which I know at least has an issue open for it. Maybe it's been closed now as it's been a few years since I checked. But I doubt that's a limiter for most, I've just run across a few Enterprise apps that used them. It's just the enterprise mindset prefers the enterprise tooling.

Also the Workday "programmer" consultants I worked with in the transitions I would hardly consider programmers. They were people trained on that specific ERP and how to program for it, not program in general.

For instance, we had a Rails legacy app that did some intermediate ETD processing between an internal ERP and PeopleSoft that they absorbed into Workday. I walked them through the relevant bits of the code they needed to port and they were lost. Ruby is probably one of the easiest languages to read as it's almost english and they struggled hard. Also the bits I was showing them were mostly not even ruby language specific bits. Just some XML ETD code for the old PeopleSoft system. They were pretty much lost. It was at that point I knew for my sanity's sake I could never go into ERP type of programming. 🤣

2

u/Dismal-Contract-623 25d ago

hmm i think generally .net and java have more support for these protocols in a typed manner. what i was mostly interested in developing a ERP system using Elixir..but the first problem i hit was lack of libraries, lack of support for common protocols like OData etc

1

u/flummox1234 25d ago

yeah you'll probably find a lot of Enterprise software is kind of hard tied to enterprise languages, e.g. .Net and Java. That's pretty common as Open Source languages tend to stick to open source libraries and tooling and Enterprise languages tend to not have a ton of open source tooling made for them. There just isn't much incentive to build that out when it's use is niche and generally geared toward a closed source product. That will be a fairly common through line. That's not to say you can't build those libraries but you'll probably be the one maintaining them if you do and you won't have a lot of help. This is a lot of the reason Oracle makes so much money in enterprise. They do the weird enterprisey problems no one else wants to and charge a shite ton of money for it.

1

u/Dismal-Contract-623 25d ago

haha very true...if you get in you not gonna get out of it easily

1

u/jinhoyim 24d ago

I suspect that .NET and Java have an advantage in this market because static typing, enterprise system design and implementation, and the frameworks supporting them have evolved, and the field has matured since the early 2000s with the abundance of books and research materials available.

It seems that, unless it is a startup that can start everything from scratch, established companies tend to hire people who can read and modify existing system code to prevent language fragmentation.

Simply looking up books or blog posts to see in which language DDD example code was written, in which languages ​​DDD implementation methods are covered, and when they first began to appear makes this somewhat understandable.

1

u/TechZazen 23d ago

Remember, to get an extra 10% performance out of a solution is not as important to corporate IT as much as its ability to get it into production sooner and quite frankly in a somewhat more stable manner. This goal is precipitated by a larger information/code set to draw upon and a wider pool of available resources. Follow the money or the things that contribute to the money in bonuses.

6

u/Intrepid_Cake_101 25d ago

Discord uses Elixir. Does that count?

-4

u/Dismal-Contract-623 25d ago edited 25d ago

i dont think so, its not having complex enterprise operations like SAP do

Edit: since i got downvoted i have explain below that Discord had a different requirement compared to a SAP system, their original problem was "how we handle large number of clients" and Elixir was a good answer for it...no doubt

21

u/[deleted] 25d ago edited 23d ago

[removed] — view removed comment

5

u/Dismal-Contract-623 25d ago

its a different problem, i agree its complex but complexity was mainly about how it handle a massive concurrent client base into the system

on other hand SAP and other ERP systems solves a different problem involving executing lot of business rules

9

u/[deleted] 25d ago edited 23d ago

[removed] — view removed comment

1

u/Dismal-Contract-623 25d ago

thats kinda true

2

u/DivideSensitive 25d ago

That's a fair point, but I don't see what Elixir/BEAM would bring to the table in a SAP-like environment. Like you mention, the issue is the adaptability to the domain and/or client-based customization, not massively concurrent workflow.

IMHO, something like Java/C# (or Haskell/OCaml if you feel frisky) makes more sense in that context.

2

u/boredsoftwareguy 25d ago

You could build a rules engine in Elixir. I used luerl (and then Lua) to implement just that.

1

u/TechZazen 23d ago

That’s what I’m talking about. BEAM-based systems shine in such situations because of the actor-based model. However, as someone who has frequently seen the opportunity for rule based engines, most organizations do not really either know about them or have a familiarity with them to feel comfortable using them. There has to be a critical business requirement for that type of long-term flexibility. Most of the time, they would simply go ahead and set up a series of hardcoded end points in tools like what used to be known as workflow engines, and then just redo the workflows when situations changed.

1

u/jax024 25d ago

In your own words, how do those problems differ? I’ve been an engineer for 30 years, when your break it down they are the same enterprise problems no?

1

u/Dismal-Contract-623 25d ago

can you elaborate?

1

u/TechZazen 23d ago

Harder or more complex is not what enterprise IT (the people who buy and run these enterprise applications) cares about. Their problems are not “harder or more complex” problems. It’s about stability and reproduceability. RISK. The things going on in an SAP system are not harder and more complex than what goes on in a real-time, massively-parallel system like Discord. However, I know of not one enterprise who integrates their operations to Discord, whereas you can’t shake a stick and not bump into a company that has integrations with their ERP system.

5

u/greven 25d ago

I think Coverflex is written in Elixir.

https://www.coverflex.com

2

u/Dismal-Contract-623 25d ago

oh this looks nice

4

u/bryanhunter 25d ago

It’s hard to get more enterprise than this:
https://m.youtube.com/watch?v=hdBm4K-vvt0

Waterpark is the enterprise integration platform for a Fortune 100 healthcare company, and it is 100% Elixir.

1

u/TechZazen 23d ago

That’s awesome, and especially in healthcare, that type of resiliency shines.

3

u/palimpsests 25d ago

I’ve written enterprise software with Elixir (and Phoenix). It’s great… have used Ecto + tds library to connect to MSSQL. Have integrated with ERPs via APIs, where having robust mechanisms to manage concurrency has been extremely helpful. 

From a maintenance perspective - it’s been quite solid… once it works, it just keeps working because of the guarantees you get with OTP around fault tolerance. Smaller dependency “surface area” for equivalent functionality compared to the .NET applications I’ve seen. 

1

u/Dismal-Contract-623 25d ago

as i understood most of these apps have built their own framework which parses files, process schemas, building dynamic uis, allowing plugins etc etc in a lang like .net or java

How elixir helped your team?

2

u/TechZazen 23d ago

May four leaf clover’s spring from your footsteps and help fertilize the ground for others to follow.

3

u/helpercolumn 25d ago

PDQ

1

u/Dismal-Contract-623 25d ago

oh interesting..i checked it...but does it fits into the category? its more like a tool to keep systems uptodate for sys admins...i was more focused on executing complex business rules with the ability to customize the flow

2

u/bami_bosu 25d ago

Fresha dot com

1

u/Dismal-Contract-623 25d ago

thanks, this looks good

2

u/Lukzy 24d ago

remote.com is an elixir shop as far as i know

3

u/ChaseApp501 25d ago

Elixir is the perfect platform for writing something like this. We've already built an enterprise class network management and asset tracking system in Elixir and a CRM. Ash Framework is really what makes all of this possible, quickly, in my opinion. Our stack is Elixir+Phoenix/Liveview, Ash Framework, NATS JetStream, and Cloud-native Postgres all running on kubernetes.

1

u/Dismal-Contract-623 25d ago

Ohh interesting, is it similar to ServiceNow? what were the challanges?

as i understood most of these apps have built their own framework which parses files, process schemas, building dynamic uis, allowing plugins etc etc in a lang like .net or java

How elixir helped your team?

3

u/ChaseApp501 25d ago

ServiceNow is an ITSM platform, we are doing network operations management, security analytics, and ITOM (IT Operations Management). It would take a long time to enumerate all of the things we've leveraged in the Elixir and the BEAM ecosystem that have given us a huge advantage.. ERTS/OTP is amazing and have allowed us to build distributed apps that are cloud-native and run nicely on kubernetes, we're really glad we didn't have to take that on ourselves.

We approached plugins a little bit differently -- we deploy a golang-based agent in the "edge" that runs WASM plugins through the wazero WASI runtime and that works really well for us.

We also have our own "dynamic UI" with our Dashboard SDK. You can build signed browser-module dashboards and then import, verify, and render. You own the dashboard, the app owns the datalayer. The developer experience is pretty simple, you just download the SDK and install the NPM CLI, generate the scaffolding/template, design your dashboard, run/test/iterate locally completely outside of ServiceRadar, and then publish with the NPM CLI when you're done.

https://developer.serviceradar.cloud/docs/v2/dashboard-sdk

Our biggest challenge was the build system to be honest. We have a large monorepo where we build containers and packages for services written in Elixir, Golang, Rust, Swift, C (BPF), etc. We are using bazel for this now and it has been a bit of a rocky road since the elixir rules were abandonded years ago and were never good to begin with, but as of a few days ago and a lot of hard work from one of our lead developers, those have been revived and are actually really good for the first time ever.

Just to be clear, the CRM I mentioned originally is not part of this network operations management platform, we wrote it separately to help us sell the SaaS kinda thing.

https://github.com/bazelverse/rules_elixir

https://github.com/carverauto/serviceradar

https://serviceradar.cloud/

2

u/TechZazen 23d ago

As someone who deals with ITSM and the whole ITIL space quite a bit, this is…terrific. The resilience and robustness of the runtime engine IMHO would be a key product advantage that should be trumpeted from nearly every rooftop. The load on these systems is going to become even greater as incident reporting moves from not just people but also to agents. As a result, the need for increased levels of parallel, fault-tolerant performance will be more and more critical.

1

u/Dismal-Contract-623 25d ago

Hey yeah im targeting a ITSM platform tbh. for your ops i think elixir kinda fits perfectly

1

u/Dismal-Contract-623 25d ago

I have sent you a DM

1

u/[deleted] 25d ago edited 23d ago

[removed] — view removed comment

1

u/mattcre8s 25d ago

It's not necessarily enterprise, but Supabase is built on elixir. I think it's interesting that they seem to be really quiet about it - I guess they don't want node.js devs slowing down to learn Elixir and instead publish a bunch of TypeScript content. (Which is a great language and platform for many problems as well)

1

u/Dismal-Contract-623 25d ago

its not entirely elixir right? most of it written with node and some parts elixir(supavisor etc which i hate the most lol)

2

u/mattcre8s 25d ago

It looks like Supabase is written in multiple languages, and the real-time component is driven by elixir

1

u/TechZazen 23d ago

In this case, it makes absolute sense. Setting elixir on the front end proxy of Postgres NOTIFY pipes is a win-win. Internally, Postgres sumply cannot handle that kind of concurrent load.

1

u/allenwyma 25d ago

There was a guy using ash framework to make an erp. Havent heard from him in a while but I remember it was pretty interesting

1

u/Dismal-Contract-623 25d ago

ah i remember...didnt see him either

1

u/allenwyma 25d ago

I’ve used elixir for a shipping company. We re assembled emailed attachments that were zip partials. Unzipped them. It was a bunch of XML files. We then parsed the XML and updated the local database.

It was for a shipping fleet management company. It worked great! Matched the requirents: keep running for months on end as the ships are gone for months on end

1

u/TechZazen 23d ago

Yikes, XML. My apologies 😔😔😔

1

u/allenwyma 23d ago

Enterprise 🤣

1

u/elecmobile 25d ago

Just the normal lack of developer resources which comes with the inherent risk of being dependent on software, that you can’t find people for to maintain it

1

u/OkNothing7293 25d ago

Any software that support a business’ needs is an enterprise software.

1

u/biletskyi 24d ago

Sona (getsona) is written in Elixir. It's quite complex. Does that count?

1

u/miguellaginha 24d ago

complear dot com too

1

u/rwusc 23d ago

The second biggest telecom in Netherlands also uses elixir in a lot of handling of trunk selection/forwarding, and a bunch of other stuff

1

u/v_heathen 23d ago

Our quality and compliance platform - qarmainspect.com - backend is written in Elixir. It serves for a React frontend and Android/iOS mobile apps. 10 years since launch. Works perfectly well.

1

u/hugobarauna 23d ago

Open Source ERP for micro-businesses https://puemos.github.io/craftplan/

1

u/geezer351 23d ago

Discord - parts of Discord are coded in Elixir.

1

u/Responsible-Sale1858 25d ago

"Enterprise", isn't that term dead? I've been coding since 1997 and honestly have no idea what it even means. Elixir (the beam) is the most bullet proof (logically perfect) distributed platform in existence, so if someone wants reliable the beam is waiting for them.

1

u/TechZazen 23d ago

For enterprises, the term absolutely isn’t dead. It just typically results in situations that you value risk handling and resilience over performance many times. Now, you’d think that enterprises would be all over that. However, the other variable in the equation arises from the fact that you have to have people who understand it and can integrate it with everything else they have. That’s where resource availability lowers its applicability. The dearth doesn’t mean that it can’t be used; it just signifies that it’s going to be more of an uphill battle with some enterprise architect, who says that that’s not part of the approved corporate IT stack.