System integrations should be assigned unique IDs to improve incident-, change- and reuse management. This article shows you how to do it. đź’Ş
"An integration shall be identifiable with a unique ID for the purpose of an incident problem, change and reuse management. Identification shall be self-contained in the deployables of the integration and referenced from documentation and other metadata about the integration."
The quote above describes the integration quality standard Certified Integrator's first requirement, "Identification - with Registry." But how do we practically create this unique ID for our integration? And why would we spend precious development time doing this?
Let's sort it out step by step.
Classic software development usually has the following phases:
Planning & Designing > Development > Testing > Deployment > Maintenance > Change management
It's the first two phases that will need a little extra work in order to fulfill the standard's requirement.
In the first phase, Planning & Designing, you identify the need for the integration.
"An integration shall be identifiable with a unique ID for the purpose of an incident problem, change and reuse management."
Okay, so the integration should be assigned a unique name or identifier. Let's name the integration to OrderDetailsToClient. It also needs to be in a registry along with other integrations. So let's add it as a new flow called OrderDetailsToClient to our landscape map in Starlify, the integration productivity platform. Starlify serves as the registry here. Simple as that, our integration now has a unique identifier and is also documented in a registry.
Additional time spent: About 1 minute. You don't even need to decide on the integration name yet, thanks to Starlify's auto-generated IDs (GUID) to the flow entity.
In the development phase, both the code and documentation come into place. It's also the second and last phase in which we need to do something extra to comply with the requirement.
Let us first consider the requirement:
"Identification shall be self-contained in the deployables of the integration[…]"
One can go many ways to achieve this, but let me present you with the one I personally like.
Let us comply and simultaneously improve any logging made by the integration. In this case, we use Mapped Diagnostic Context, MDC, an instrument for distinguishing interleaved log output from different sources.
At the point of entry/start of the integration, set a predefined named variable with the value of the unique identifier of the integration OrderDetailsToClient. Then propagate that variable to MDC.
Pass along the variable when needed (like a property/header when transferring a message through protocols such as HTTP, JMS, etc.). Knowing what the variable/property/header attribute name will be, re-setting this will be a breeze.
These actions will have the effect that anyone can always see what log entries belong to this specific integration. I promise that you won't regret doing this!
An example of how to do this in Java.
An example of how to add your MDC to your "pattern" in the config file.
Last but not least, we should consider this statement when doing the documentation:
"[...]and referenced from documentation and other metadata about the integration."
Don't worry; this one's easy! Just use links between Starlify and your go-to documentation platform, e.g., Confluence. There are two simple ways to do this:
Additional time spent: About 60 minutes (once you've done your first proof of concept).
With a small investment - a little extra care about documentation and logging - your integration project and your integration landscape will get a much better structure.
Taking this route may seem excessive and costly at first glance. But just take a look at the results of your efforts:
I promise you'll get your investment back in no time!
A quality standard for system integrations, providing best-practice guidelines for more secure and reusable integrations.
certifiedintegrator.com/get-certified
Build better integrations by collaboration and insight.
Starlify brings insight into your organisation’s system integration assets by collecting them all in one place. It will help you focus your efforts, and speed up integration delivery times.