Pipeline interface stages
Say you have a web service which pulls back 100 HL7 messages for example.
This web call might take 3 seconds to run which means if you try and write mapping code to process each of those 100 messages within the same Translator instance there will be at least a 3 second delay every time you modify the code.
That will add up to a rather cumbersome development experience.
A way to avoid that is to break the logic into stages so that you have a Translator instance which does the slow operation, in this case giving the example of calling a web service and does at little processing as possible. It should do just enough logic to put the messages into the queue. This could be done in a “From Translator” or filter instance.
Then each of the messages can be mapped much more quickly using sample data in a To Translator or filter Translator instance downstream from the first Translator.
For this example the mapping process can then give almost instantaneous feedback each time the script is executed which will give a much more pleasant and efficient work flow.
Note: You can use pipelining and sample data to improve the development with any From component (not just from a web service).
There are also other benefits from working with sample data, you can source the sample from any source (rather than just from a web service, for example), also you can modify/customize the sample data to suit your needs.