Case study Enterprise engagement
Enterprise MuleSoft CI/CD and release lifecycle modernization
A legacy release workflow, reverse engineered from what actually runs rather than what the documentation remembers, and rebuilt as a deterministic, fail-closed lifecycle around one immutable artifact.
- Role
- Technical workstream owner
- Client
- Global Enterprise Client
- Year
- 2026
- Platform
- MuleSoft and Azure DevOps
Context
The client runs a MuleSoft integration estate whose CI/CD had accumulated years of versioning and branching complexity. The historical design documents and the live implementation had stopped describing the same system, so the first phase was archaeology: reconstructing how releases actually behaved, from evidence, before proposing anything.
The problem
Representative repositories carried hundreds of Git branches, and roughly 75 to 88 percent of them were version bookkeeping created by the historical workflow rather than development. Worse, release state lived in four independent places at once, the Git remote, the Azure artifact feed, MuleSoft Anypoint Exchange and the pipelines themselves, and nothing guaranteed they agreed about what was released.
My role
I owned the technical workstream: reverse engineering the existing Azure DevOps pipelines and their reusable templates, reconstructing the real release lifecycle, and designing and validating its replacement.
The approach
- Reverse engineered the live pipelines and templates, and mapped exactly where the historical documentation and the implementation diverged.
- Reconstructed the version lifecycle from evidence: Git remote state, Maven project versions, artifact feed state, Anypoint Exchange state, and local pipeline and worktree state where relevant.
- Redesigned release semantics around strict Semantic Versioning: SNAPSHOT development, short-lived release candidates, and immutable final releases.
- Separated building an artifact from deploying it, so promotion moves one durable artifact through the environments instead of rebuilding per environment.
- Made the workflow fail closed and resumable: preflight validation reconciles all four state sources before a release may proceed, and an interrupted release resumes from a known state instead of restarting unsafely.
- Kept rollback out of the happy path: a separate, controlled operation rather than an automatic assumption.
The release lifecycle
The redesign replaced implicit conventions with an explicit state machine. A release is always in exactly one named state, which is what makes the four state sources mechanically checkable against it.
- 01Draft
- 02Build and publish
- 03DEV
- 04Release candidate
- 05QTA
- 06PRD
- 07Finalize
Promotion is serial, DEV to QTA to PRD, behind approval gates on the way to production, and Finalize is a recorded state rather than an assumption: released means finalized, immutable, and reconciled across all four sources.
Key decisions
Decision 01
Evidence over documentation
The redesign is grounded in the workflow that was actually running. The documentation described a system that no longer existed, and treating it as truth would have modernized the wrong thing.
Decision 02
Explicit states over conventions
Draft, build, environments, release candidate, finalize: every release sits in one named state at a time. State that is explicit can be validated by a machine. State that is conventional can only be remembered by people, and the legacy repositories showed how that ends.
Decision 03
Fail closed, resume safely
If preflight cannot prove that the Git remote, the artifact feed, Anypoint Exchange and the pipeline agree, the release does not start. And when a release is interrupted, it resumes from a known state instead of being rerun from the top.
Decision 04
Immutability is the contract
A final release and its artifact are never rebuilt or overwritten. The artifact validated in DEV is the artifact that reaches production, which is what makes promotion, and rollback as a deliberate separate operation, trustworthy.
Scope and results
- Legacy composition
- 75 to 88%version-related branches in representative repositories, out of hundreds observed
- State sources reconciled
- FourGit remote, artifact feed, Anypoint Exchange, pipeline state
- Promotion path
- Three environmentsDEV, QTA and PRD, serial, behind approval gates
- Pilot release
- To productionone real release validated end to end, Build through Finalize
Technology
- Platform
- MuleSoft · Anypoint Exchange · Maven
- Delivery
- Azure DevOps · Azure Artifacts · Git · PowerShell
- Practices
- Semantic Versioning · CI/CD · Release engineering
Case study note. This work was delivered for an enterprise client under NDA, referred to here only as a Global Enterprise Client. Names, identifiers, internal architecture and anything that could reasonably identify the environment have been removed. The 75 to 88 percent figure describes the composition of representative legacy repositories, not a measured reduction.