Hacker News new | ask | show | jobs
by joneholland 3009 days ago
No modern company is pushing esb anymore. It’s an architectural failure still being pushed by vendors and has been architects.

I use it as a canary to know if a company is technically inept.

3 comments

I’ve worked with MuleSoft and the ESB really isn’t an “ESB”. It’s really about having the ability to write APIs with specific standards.

It allows you to write micro services without pushing up your own instances, use kube8, or anything of that nature.

It internally uses raml as its service definition that is analogous to OpenAPI/Swagger.

Think of a number of good yet annoying things you have to do when interacting with other businesses when writing APIs.

Certs set up, QoS depending on customer, key rotation, API throttling, authentication, authorization, HA, etc. You essentially push up a lambda onto their service and config.

The power isn’t necessarily just that as well, but because they have raml, they publish and support an ecosystem of “connectors” which is mostly just a pretty version of an API and has a UI that allows non devs to do ETL on data although almost no one does that. It allows low level engineers to do it though.

Imagine having an Ubuntu machine(s) doing APIs vs an iPhone using apps. It’s packaged nicely for simple API development rather than spinning everything else up that you can.

Mind you, I’m not saying to go out and use it today as it is not cheap but there really is a business case for it.

Lastly, we integrated a lot with Rabbit to help with work that can be done asynchronously. Otherwise your bill from them would be even more expensive.

Would I use it again? Yes, if the company wanted to have the cheapest engineers or use tech savvy product managers and wanted as little DevOps as possible to maintain their code (again think of it like as nicer lambda). Just remember to fork over $200K a year for the bare minimum for what I would call a production grade set up.

Thanks for the detailed reply. I think I need to wrap my head around this more as I am not (fully) getting the benefits and cases you explained.

From their website, their simple definition of Mule ESB is that is used to "integrate" applications so they can talk to each other, even if using different communication protocols:

Mule, the runtime engine of Anypoint Platform, is a lightweight Java-based enterprise service bus (ESB) and integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data. It enables easy integration of existing systems, regardless of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more. The ESB can be deployed anywhere, can integrate and orchestrate events in real time or in batch, and has universal connectivity.

So ESBs is a early 2000s concept but what is so terrible about it, or why is it an architectural failure.
So what is used instead of ESBs today?