Oct
26

Fetching Dynamic Properties in Dataweave Scripts

  Under normal circumstances Dataweave mapping is straightforward; you simply point to the source variable or payload property you want and inject it into the output. However, there are times where you don’t know which source property you need to use at design time. In such cases, the required property

Sep
07

Finding the Root of a Problem

  There are times when you need to fetch a file from your local file system on the application at runtime. In these cases, the Mule can look stubborn and confusing. For instance, some components (E.g. Transform components) allow you to navigate to the file in question and then display

Jun
05

Bulletproof Vest Required

  The Mule is, by nature, a messenger; it carries messages (or information) from one isolated system to another… … and we all know what happened to the messenger in ye olde days!   The messenger always got shot when delivering bad news. The modern IT landscape is not very different.

May
01

A Whisperer’s Ongoing Search for Perfection

    Recently, I was posed with an interesting challenge; transform this array of key/value pairs: [ { “key”:”Key1″, “value”: “Value1” }, { “key”:”Key2″, “value”: “Value2” } ] … into this object: { “Key1”: “Value1”, “Key2”: “Value2” }   On the face of it, this should be easy. And yet…

Apr
03

TDD Pitfalls that Make a Mockery of Testing

  What to do When Mocks Fail Many years ago, I worked on a project that used Mock Services extensively. We wrote our code against those mocks and all went swimmingly. Then we switched to the real service. That is when things went awry.  The actual service were far less

Mar
06

What to do When Muleys go Yak-Shaving

  Yak Shaving is a common problem in development teams and IT projects in general. To understand how we fall prey to Yak Shaving, consider the following example. John borrowed Jill’s lawnmower several weeks back, but has yet to return it. Jill calls him up and asks if she can

Feb
06

Getting to Grips with OAuth 2.0

  In light of how prevalent OAuth 2.0 is as an authentication method, I found it surprising how few articles exist, explaining how to configure it in MuleSoft — especially in the context of an HTTP client.   The scenario In this scenario, we have an HTTP Request in our

Jan
02

Technology Choices — A Holistic View

“Leadership needs to think beyond technical capabilities when considering digital solutions to business challenges — and technology experts should advise holistically so that leaders can make informed decisions” Can Mule Do it? I have been asked this question many times in any number of different contexts. The answer is almost always,

Dec
05

The Holy Grail — Writing Your Own Mule Connector

  Arguably, one of the cooler things you could do in a Mule project is to write your own Mule Connector. These custom objects are variously referred to as Connectors, Components, Plugins or Extensions. Done right, this will allow other developers to drag your custom connector from their Mule Palette

Nov
07

Correlation — Thinking Outside the Box

  Correlation is an easy way to allow different systems to communicate with one another. Usually, we use a correlation ID as a common reference between multiple systems. When a system completes a given task, it can notify other systems in the network which, in turn use the correlation ID

Oct
03

Going Old-School with Multipart Form Data

  Recently, I came across an interesting integration use-case; an “API” that actually expected a multipart/form-data MIME type rather than the more conventional application/json or application/xml. Well, this triggered a sense of overwhelming nostalgia. It took me back to a time where we used web pages to complete forms which

Sep
05

How to Create Rich API’s Using RAML

  When building MuleSoft API’s, RAML is the starting point. It is from here that we design our API structure and it is from here that we generate our initial Mule Flows.    Handling null Values There is a plethora of RAML tutorials out there, both within and outside of

Aug
01

A Developer’s Biggest Trap — Hobbling the Mule

  All too often, API designers and developers work to peripheral requirements instead of focusing on exposing the functionality of the underlying system for which they are developing an API. This creates brittle solutions that are not reusable. In fact, this type of solution amounts to little more than point-to-point

Jul
19

REST vs RPC API’s

  keep calm and carry on coding When it comes to designing API’s we often try to follow a Purist approach. We also find frustrating when external API’s do not follow that same ideal. Check out this great article by Phil Sturgeon that outlines the differences between REST vs RPC

Jul
04

The Hidden Cost of “Certified” Resources

  Several years ago, I encountered a client that made the cardinal mistake; they hired a team of “resources” to deliver their project instead of seeking out the right skills. In this instance the tool they used was not MuleSoft but rather a Business Process Management System with powerful API

Jun
06

Creating a simple HTTP Proxy

  Challenge Extended… Can Mule expose an API without any understanding of the service it is supposed to proxy? Recently, a client asked me to expose an existing service via a simple proxy that would allow external API consumers to pass through a firewall — and to do it using

May
02

Remaining True to Your Vision When the Rubber Hits the Road

  It is so easy to lose sight of business vision in favour of a quick win — often with devastating consequences. Tactical decisions are taken in the moment, usually with the aim of delivering a quick solution to an immediate problem. However, more often than not, these decisions jeopardize

Apr
04

Dealing With String Conundrums

  When it comes to String manipulation, Dataweave 2.0 offers a myriad of great out-of-the-box functions. However, even seasoned developers can begin to feel the frustration build when their Dataweave scripts don’t work as advertised; sometimes the Mule just appears to be stubborn. One such area is in the String