OMNICHANNEL SERVICES SHOULD DELIVER FUNCTIONALITY, NOT ONLY DATA

October 14, 2014
Christian Forsberg

Connecting gearsIn design of omnichannel services that is accessed by touchpoints (like apps), I think it’s important to focus on delivering functionality, and not only data.more–>

There are services that supply data and those that implement functionality. The data-oriented services (often called RESTful) can be queried (with CRUD operations), just like a relational database. In fact, many of the things that you can do with SQL, can be achieved with these data-oriented services, and this is really useful for some services on the server-side. On the other hand, we have the functional services that works like a function, which takes a number of parameters, performs some logic, which usually include data operations, and return a consolidated result. There are two different ways to implement these services, and either they are using light-weight data formats like JSON or they using heavy-weight formats like SOAP and XML. What we want to achieve are light-weight functional services.

When a device accesses a service on a low bandwidth, it’s important to do as much as possible with as few requests as possible and that is really difficult with data services. Also, some calls don’t even map to a relational data structure. Let me take an example of searching prices for flights (which I worked with recently), where you want to make a single request with all parameters (from, to, dates, number of passengers, currency, etc) and get a simple answer with just the information needed to show in the user interface.

This example also show that there is often a need to implement logic for the data (validation, calculations, etc), and if you only have services that deliver data, you have no other option than to implement the logic on the client side (in the app). That becomes a real problem when you have multiple clients using the same service, which is the case for most omnichannel services, because then you would need to implement the same logic on each client platform. Not only does that mean extra work in both initial implementation and maintenance, but it will be really hard to make sure the logic is the same in all channels.

So, the conclusion is that you should put as much logic as you can on the server side, and create light-weight functional omnichannel services.

About the author

Global Digital Channels Lead Architect | Sweden
Chris Forsberg is Sogeti’s Global Chief Architect, and his current passion is serverless architectures with microservices, cognitive solutions like chatbots, automation, and beautiful delivery. He has a long background as an architect of digital solutions for many clients on all the major platforms, and love to experiment with new technology.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Slide to submit