Best approach selection

Although, it is possible to implement a service using either approaches, each approach has some advantages and limitations when it comes to the capabilities.

  1. RESTful approach
    1. Advantages
      • Less verbose & reads closer to the typical HTTP interaction
      • Out of the box transport level error handling
      • Out of the box support for retrial in case of temporary outages
      • Out of the box support for proxied connectivity
      • Out of the box support for future enhancements in Content Integration Framework
    2. Limitations
      • Cannot be used for non-RESTful or non-HTTP integrations, such as database or file system interactions
  2. Functional approach
    1. Advantages
      • Can be used for non-RESTful or non-HTTP integrations, such as database or file system interactions
    2. Limitations
      • No out-of-the-box support available for transport level error handling, retrials, proxied connectivity, and any future enhancements from Content Integration Framework.
      • If required, the explicit implementation of missing out-of-the-box capabilities can make service implementations very verbose.

You can see that the Functional approach is well suited for non-RESTful or non-HTTP based integrations. Any service implemented using RESTful approach can also be implemented using Functional approach by taking care of all the necessary out-of-the-box capabilities provided by Content Integration Framework. While Functional approach gives flexibility in terms of implementation design, it takes away a few useful capabilities.