MuleSoft Explained for Beginners
Please note that there could be some grammatical and factual errors. This article is written on the best of my knowledge, but still; please take it with a grain of salt and pepper.
What is MuleSoft?
MuleSoft is Salesforce company which sells easy to use decorative style, drag and drop tools and services which helps it's developers and clients to take advantage in the field of automation and integration for Enterprises.
Essentially what MuleSoft is all about is that it's a Middleware ESB (Enterprise services bus). A bus in the world of computer is a channel which transmits data from one location to another location. An enterprise service bus is the type of software which is specialized in migrating data from one or more sources system to one or more target systems. The word "Middleware" means that which is not front-end like user facing, and that is not entirely back-end. Middleware lies somewhere in the between and it is primarily concerned about Data. MuleSoft on a very high level does three things at its core.
- Data Migration
- Data Transformation
- Data enrichment
What is an API?
The way MuleSoft achieves the above three functionalities is by employing the use of APIs. The word API stand for Application Programming Interface. The acronym of API can be confusing to the fresh eyes. One might even wonder why there is the word "Programming" in there. After all, aren't all the APIs more or less exposed as overly glorified JSON data serving endpoints which can be accessed via the HTTP web protocol? No. Not exactly. APIs are not supposed to be "Only Data Serving" HTTP endpoints. An API can be anything which is serving as a interface between two or more software entities. Those entities can fall under any category.
Well then, aren't all Applications programmable? you may ask. And why aren't we referring to them as AI - Application Interfaces? Or PI - Programming Interfaces? Well, do not try take the word "Programming" by itself and try to make a meaning out of it. The word itself might look like it is just a fancy term added in there for spiciness, but it's not. APIs are programs which act as interfaces/bridges for some other programs or services to talk to each other. But all APIs have one thing in common and that is "Source code compatibility". The way these interfaces route their requests is through source code control. And that's why the term "programming" is thrown in there, because you as a developer dictate how the program controls using interaction with other programs. The source code as a program is the one the that's controlling the flow and how other systems interact with it. While APIs are concerned about how source code interaction and working compatibility, the ABI is another concept which is concerned about how binaries interact and call routines.
What tools MuleSoft primarily offer create APIs? There are two of them
- Anypoint Studio
- Anypoint Platform
Anypoint studio is an offline, eclipse based IDE (a SaaS) with Mule runtime as it's core created with the purpose of developing and testing Mule Applications locally using a graphical view. The runtime itself is written in Java. Anypoint Studio offers a wide variety of connectors in its connector palette and makes the developers life easy relatively to traditional Java developers who spend a significant time in coding and fixing bugs. This graphical style allows it's developers to spend less time on big fixing and release APIs to production at a fast pace giving the clients an edge over it's competitors. The developers get to spend less time thinking about coding and spend more time on designing various integration patterns and setting development standards.
Anypoint Platform is a cloud based Platform as a service (PaaS) tool which enables the developers to deploy those locally developed Mule Applications in Anypoint Studio onto the MuleSoft owned Cloud server cluster called CloudHUB. Like AWS having EC2, S3, RDS, Dynamo DB, the Anypoint Platform is also a suit of web apps used to do primarily four things.
- To Deploy apps to CloudHUB using Runtime Manager
- To Manage those deployed apps using API Manager
- To Share and Discover APIs using Exchange
- To Monitor APIs using Anypoint Monitoring
There are other things the platform has like Composer, Visualizer, RTF, Flow Designer etc. but those are not as special tools as the ones I just mentioned above.
How MuleSoft CloudHUB infrastructure is setup?
As I already mentioned before, all the MuleSoft Apps are deployed on to CloudHUB using their Runtime Manager. While that is true, not all Mule Apps are going to be deployed onto CloudHUB alone. There are some clients who would like to deploy their apps onto their own On premise servers. And that's why MuleSoft also allows it's users to go with Onprem Deployments.
But when it comes to the CloudHUB network, the servers underneath use the AWS infrastructure. All the MuleSoft Apps are onto CH (CloudHUB) servers called Workers. The workers are basically AWS EC2 instances spread across different AZ's (Availability Zones) in a given AWS Region. Even more, MuleSoft workers use a concept called vCores aka Virtual Cores, and this is the same concept of AWS EC2 instances. MuleSoft's VPCs are based on AWS VPCs. MuleSoft's LBs (Load Balancers) are based on AWS ELBs. By this one thing is crystal clear. MuleSoft as a company did a fantastic job in their business model where all they had to develop in-house is the Anypoint platform, Studio tools and the Mule Runtime Core and leave all the infrastructure hassle to a Goliath such as AWS. Salesforce saw how good of a business MuleSoft is and so they brought the whole company and made it theirs.
How expensive is MuleSoft?
In the Enterprise Middleware integration space MuleSoft is unchallenged and enjoying it's domination. There are other great Middleware tools which came over the years but nothing is ever close to how easy it is to work with MuleSoft. Due to the immense value MuleSoft has brought to it's users, the tool has become quite expensive to acquire, so much so that now it is backfiring their business in 2024 where projects are choosing other not so popular and lesser tools and services because of cost savings. When it comes to pricing MuleSoft has kept its mouth shut and never disclosed it to the public in the fear of losing the competitive advantage. But their pricing model is simple.
- They may charge an annual Licensing fee to use their products. The license comes with a standard number of vCores and standard subscription. The subscription they have are Gold, Platinum and Titanium. Exact details may change over time.
- They may charge for any additional support which does not come with the standard subscription.
- They may charge for any extra vCores used.
I personally believe that it takes anywhere between 2 Million to 6 Million USD budget for a project to use MuleSoft. Because a single vCore can host 10, 0.1 vCore mule APIs and it may cost around 40k to 50k USD. For most projects there would be at least 5 environments, i.e., sandbox, dev, qa and prod. So, having 4 vCores one for each environment is the bare minimum. That would cost at least 100k just for vCores. The entire project budget includes other resources like Infra, Staff, Contract employees, Hyper-care support etc. We can only speculate about these costs, but one thing is for sure. The product is not cheap and it's not for small time players. Now this means only one thing which is what we will talk about next.
A Career with MuleSoft
You are now fully aware of the cost it takes to run a MuleSoft oriented project. If a client is using MuleSoft, that also means they are also going to use other high end tools and services based on their necessity. They may use Salesforce which is a CRM solution, SAP which is a ERP solution, Veeva Vault a cloud enterprise content management platform, Blackline and Bloomberg for financial solutions, and Devops tools like Jenkins, Kubernetes, Confluence, Azure, AWS and much more. All this means only one thing. To perform the role of a MuleSoft developer you have to interact with everything big and small thrown at you. You have to manage and interact with teams on multiple fronts. On one hand you need to be technical sound in tools and integration patterns, and on the other hand you need to manage your time and resources extremely well doing little things too. And also you must be well versed using technologies used by your counterparts. Say you have to Integrate Salesforce with SAP S4. Not only you have to be good at MuleSoft but also you must understand Salesforce and the operations one can perform using Salesforce connectors in MuleSoft. This skill is rare and it's a niche in its own right. Your job is valued in the Industry and since you are working on an expensive tool, your compensation is also going to be higher (unless you work in labour-rich cost effective countries of Asia. I belong to this category as I am working from India for both fortunate and unfortunate reasons).
What it takes to sustain a job in Middleware technologies?
To sustain a job in Middleware first one must be a good listener, and act as a mediator between different teams. Middleware people bring the front-end back-end, and back-end back-end teams close together. They have to play more than one role and become more than a traditional developer. The natural progression at least the way I see it is to either become Integration Architects or DevOPS engineers. Because, to stand as a good Middleware developer, one must become an architect him/herself right from the beginning years of the career.
As a MuleSoft dev myself, there were times in my career where projects had no thought or budget for having dedicated Integration Architects even though all of my clients are highly reputable big time players in the Industry. I had to design and brainstorm ideas to stakeholders myself and directly taking an ever increasing responsibility. This is why I believe that people working in certain Niche technologies demand a lot in compensation. In traditional app development, the developers only have to bother about technical and execution details and blindly follow instructions to the dot. The rest of the high level architecture, assumptions, technical design and documentation is taken care by an Architect. An Architect's job is not to just attend a bunch of calls, gather status reports and attend leadership meetings, guiding teams etc. That's the role of a project manager. What an Architect must do is take ownership of the design he or she proposes and take necessary technical and non technical steps to deliver a product. Their goal is not to make the Project or Program a success, rather their goal is to help their teams technically and suggest creative ways of developing things and providing useful solutions. If a Tech Architect is just doing Micro Management and leaves all the crucial design decisions to a developer, then he or she is doing a bad job and serving the wrong role.
But now a days things have changed. Especially in the Middleware domain where both junior and senior Dev's are performing the work of the Tech Architects and slowly replacing them. That is sad and dangerous for the clients from a managerial and outcome standpoint, but from a learning stand point it unintentionally is fostering growth among the devs. This means more money for the Devs too. Devs are also slowly adopting to DevOPS and Agile. They build the apps, deploy the apps, manage and monitor those apps and troubleshoot, analyze past mistakes, repeat in a cyclical manner and migrate the existing knowledge to a new project.
In the effort to boost productivity, Devops has brought plenty of automation and integration easy tools such as Docker, Kubernetes, Pipelines using Jenkins, Azure Devops, git integration and much more. This means the modern dev needs to learn a lot. So I believe a Career in MuleSoft will force you to go through all of it. Without learning new tools and constantly up-skill oneself, the is little hope for career growth. Lack of career growth means little money. Little money means financial instability. That will lead to stress, family problems, economic instability, community fall down, depression and more troubling issues. Money makes and breaks Human life and no logically thinking person can contend that fact. So, we must do everything in our effort to make sufficient money. And the need for money shall be the place where our passion arises. After all, most of the major democratic economies are built and sustaining on the idea of Infinite growth and Infinite GDP increase. Regardless of all the hype, do not trust in one technology or tool.
Technologies whatever such as MuleSoft, Salesforce, SAP, PEGA, AWS, WebMethods, IIB, TIBCO, OpenShift etc are just a phase in the timeline of industry revolution. Their rapid increase in popularity will also become their rapid decline someday, because any technology is only as good as the people who are interested in them. Big and good things like Yahoo are no where to be seen now. If people interest is what lead to a tech's rapid growth, the same people will take it down by finding some other fancy thing whenever they can. So, by the end of the day, tools and how much you as an individual know does not matter. What matters till you are alive is adaptability and creativity.
If you liked this article, you can write a mail to me using the mailing address provided in the footer. You can also contribute any articles of your liking on this site if interested. Have a good day.