I’m new to WM and I’m from an SOA background.
First of all I’d like to say that WM looks great and that it seems to have anticipated SCA by many years!
I have a question though regarding WM service architectures for very large systems.
In large systems we are often concerned to prevent the development of “service spaghetti” which can arise when many services call each other almost at random.
Implementing our functionality as services doesn’t mean that we have automatically reduced the dependencies in the system unless the calling patterns between the services have been designed so as to reduce that dependency.
Usually this means two things:
- Layering services with orchestrations (“flows”) at the top, enterprise-level compositions in the middle and low-level technical services at the bottom.
- Preventing direct services calls between different business domains (or “business capabilities”).
So, in order to weigh up the suitablity of WM to the task I have in mind, my question is:
- does WM have a way to prevent certain types of services from calling certain other types of services?
If it does then we can enforce some of the calling rules necessary to create a structured service architecture in WM.