Insights · Engineering
Engineering · · 7 min read

How to reduce MuleSoft licence costs without losing capability

Flows, messages and throughput drive MuleSoft costs. How to find freeable flows, design for fewer billable flows, and forecast when you will hit your limits, before the renewal talk.

The short answer

To reduce MuleSoft licence costs without losing capability, do three things in this order: clean up what is deployed but not needed, design new integrations so they use fewer billable units, and forecast usage so that you buy capacity on time and with data, not in a panic. In most estates we review, the first step alone frees a noticeable share of the licence before a single line of business code changes.

What actually drives the cost

MuleSoft has sold the Anypoint Platform under different models over the years. Older contracts are mostly based on vCores: the compute capacity your applications use. Newer usage-based packages, such as Integration Starter and Integration Advanced, meter three things:

  • Flows: deployed Mule flows that can start work, typically flows with an event source such as an HTTP listener, a scheduler or a message listener.
  • Messages: the number of events processed by those flows.
  • Data throughput: the volume of data that passes through.

The exact counting rules are in your order form, and it is worth reading them carefully. In the contracts we see, flows are counted per deployment, so the same application in development, test and production counts three times, and replicas can multiply the count again. This is why non-production environments are often the biggest hidden cost.

The good news: the Anypoint Usage API reports flows, messages and throughput per business group, environment and application. You can measure all of this; most organisations just never look.

Step 1: clean up what nobody needs

Every estate collects leftovers. In one review, about one in twenty licensed flows could be freed immediately: a QR code proof of concept, a messaging connectivity test and a CI/CD test application deployed in two environments. None of them carried business traffic. Typical candidates:

  • Hello-world, demo, PoC and test applications, recognisable by their names.
  • Failed or stopped deployments that still count.
  • Applications with no requests in the last 30 days.
  • Applications without an owner, a ticket or an epic behind them.
  • Duplicates: the same application deployed under two names after a rename.
  • Usage from deleted environments. The Usage API keeps reporting them for the months they existed, which often confuses the numbers.

Do not just delete. Put each candidate on a list with its owner, confirm, then undeploy. A monthly cleanup review of fifteen minutes keeps it that way.

Step 2: design for fewer billable units

The second lever is design. The same capability can be built with very different licence footprints.

Count event sources, not endpoints. One HTTP listener with an APIkit router serves many endpoints. Ten small applications, each with its own listener and its own health flow, cost more and give you less. API-led connectivity does not mean one application per resource.

Consolidate schedulers. Ten polling jobs with ten schedulers can often become one scheduler with a dispatcher, or better, one event-driven flow. Every scheduler is a flow, and a scheduler that runs every minute generates more than 1,400 runs per day, each a message.

Prefer events to polling. Change data capture, platform events or webhooks create messages only when something happens. Polling creates messages all day, even when nothing changes.

Move less data. Fetch deltas, not full extracts. Filter at the source system. Throughput is metered, and full payload copies through several layers add up quickly.

Be strict with non-production. Deploy to shared test environments for the time you test, not forever. Use MUnit and local runtimes for development. Ask whether you really need four non-production environments for every application.

The cheapest flow is the one you never deploy. The second cheapest is the one you deploy once, not four times.

Step 3: forecast before the renewal

Most licence surprises are not surprises. They are trends nobody plotted. A useful forecast has two parts.

The trend. Take monthly flows and messages from the Usage API for the last six to twelve months and fit a simple linear trend. In one estate the trend alone was about 20 new flows per month, enough to cross the contracted flow limit within roughly seven months, without any new major project.

The pipeline. Add the integrations that are planned: each new application, its billable flows, its environments and replicas, and its expected message volume per hop. A planned programme of six applications with five flows each, in three environments, adds 90 flows on its own. In that estate, the planned go-live moved the limit date forward to the go-live month itself.

With both parts you can answer the questions that matter: when do we reach the limit, how many packs do we need, and which cleanup or design change moves the date. You go into the renewal talk with numbers.

Checklist: MuleSoft licence hygiene

  • We know our contract model and the exact counting rules for flows, messages and throughput.
  • We read flows, messages and throughput monthly from the Usage API, per business group and environment.
  • Every deployment has an owner and a ticket or epic.
  • Test, PoC and demo apps are undeployed after use.
  • Failed and stopped deployments are removed within a week.
  • Apps with no traffic for 30 days are reviewed.
  • New designs are reviewed for event sources and schedulers before they are built.
  • Non-production deployments have a defined lifetime.
  • We forecast usage with trend plus planned pipeline, at least quarterly.
  • Alerts warn at 70, 80 and 90 percent of each limit.

How we help

Our MuleSoft Health Check includes a licence view built with MuleInsights, our own analysis platform. It reads your real usage from the Usage API, lists cleanup candidates with reasons, counts billable flows in the code before deployment, and forecasts the month you reach each limit. After 25 years in integration, we treat licence cost as an architecture topic, not a procurement topic. It belongs in the regular work of your Center for Enablement.

FAQ

What counts as a flow in MuleSoft licensing?
In the usage-based packages, typically a deployed flow that can start processing on its own, for example one with an HTTP listener, scheduler or message listener. Check the exact definition in your order form.

Do non-production environments count against the licence?
In most contracts we see, yes: flows are counted per deployment, so development and test deployments count as well. This is often the largest hidden cost.

How can I see my current MuleSoft usage?
The Anypoint Usage API and the usage pages in the Anypoint Platform show flows, messages and throughput per business group, environment and application.

Can we reduce costs without rewriting integrations?
Yes. Cleanup of unused deployments and stricter non-production rules usually bring savings without touching business logic. Design changes then help for new integrations.

By Bassem Fawaz · #mulesoft #mulesoft-license #cost-optimisation #capacity-planning #anypoint

When will you hit your flow limit?

Our MuleSoft Health Check includes a licence view: freeable flows today, the growth trend and the month you reach your limits, based on your real usage data.

Book a MuleSoft Health Check