Additional support for chaining systems
AnsweredCurrently there is a way to chain system calls via e.g. the URL, but it is not a first class citizen.
Example "url": "https://www.secondsystem.com?firstStep=https://SESAM-SYSTEM/api"
This approach has implications when it comes to things like url-encoding, monitoring, performance and readability.
A possibility is something similar to the BizTalk pipeline implementation, to optimize common concerns without chaining micro-services in the source/sink URL config?
One could also consider a second light weight "meta pipe" that will only change "context" values, e.g. a property bag for tokens, etc. the actual data stream would pass through/remain unchanged
The existing approach (reading a source and converting from xml to json):
{
"_id": "acme-person-endpoint",
"type": "pipe",
"source": {
"type": "dataset",
"dataset": "global-person"
},
"sink": {
"type": "json",
"system": "xml-converter",
"url": "/?url=http://acme-token-auth:5000/api/person"
}
...
}
An alternative:
{
"_id": "acme-person-endpoint",
"type": "pipe",
"source": {
"type": "dataset",
"dataset": "global-person"
},
"sink": {
"type": "json",
"system": "acme-token-auth",
"url": "api/person",
"pipes":[
{"system-pipe": "remove-id", "sequence": 1},
{"system-pipe": "xml-converter", "sequence": 2},
{"meta-pipe": "get-token-acme-api", "sequence": 3}
]
}
..
}
-
Official comment
We are investigating ways of composing microservices in various ways, e.g. pipelining and chaining. We also considering whether we should add support for doing custom conversions on incoming and outgoing data.
Comment actions
Please sign in to leave a comment.
Comments
1 comment