How can I realise service versioning for SwitchYard services in FSW 6?

Solution Verified - Updated -

Issue

  • Fuse Service Works 6 seems to be lacking service versioning capabilities, which is fundamental in any large SOA architectures. Service versioning is a key aspect of SOA architectures; any serious production environment needs to have multiple versions of the same service deployed simultaneously.
  • The requisites are relatively simple. Basically we want to have multiple service versions deployed at the same time and the service development should be based on them (by choosing versions when orchestrating, etc.).
  • As I can understand, FSW does not have this concept automated. So, how can I implement such a behavior?
  • I was trying to test the Dynamic Router from Camel to route the service dynamically based on fields from the request in which the service name and version is specified. However, this approach does not work as the DynamicRouter cannot specify the outbound composite reference bindings directly and we have to define all the required reference interfaces into a component up-front.
  • Consider that our scenario has 300+ services with multiple versions and constant service version increases. It is not reasonable for us to manage 500+ interfaces (Java and WSDL) and create manually service references to them in one project just for the sake of versioning.
  • Is there a way to do this with SwitchYard? If not, how can I do this with SwitchYard + Camel?
  • The RemoteInvoker seems to have a performance overhead in this case. A local invocation would be better.

Environment

  • Red Hat JBoss Fuse Service Works (FSW)
    • 6.0.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In