Integration API's are different

Integration API's are different

In the current hype around API’s it amazes me that the distinction between application API’s and integration API’s gets little to no attention. It can however be of vital importance.

Let’s examine this with a common example. On the left side you see Lois, who is working for the Logistics department, and she is responsible for Order management of incoming orders. To be able to do her work, Lois uses the Ordering System. The Ordering system is the system that is authoritative – the System or Record – for the Ordering process. All incoming orders are created, updated, deleted and processed in this Ordering system, and through a front-end application Lois uses API’s to create, modify, delete or process her incoming orders.

On the right side you see Fiona, who is working for the Finance department, and she is responsible for Invoice management of outgoing invoices. To be able to do her work, Fiona uses the Invoicing System. The Invoicing system is the system that is authoritative – the System or Record – for the Invoicing process. All outgoing invoices are managed in this Invoicing system, and through a front-end application Fiona uses API’s to create, modify, manage and delete outgoing invoices.

No alt text provided for this image

Figure 1

Of course Fiona does not create new invoices out of the blue. She needs a reason to create a new invoice. An incoming order is a good reason. That is Lois’s responsibility. But she is not responsible for creating invoices. She can ask Fiona to create an invoice for her incoming order.

Exactly the same reasoning applies when implementing the processes with API’s. The Create, Update and Delete API’s are Control API’s. In the Logistics domain the Ordering user interface can take control of the Ordering system with these Control API’s. In the Finance domain the Invoicing user interface can take control of the Invoicing system through their Control API’s. The Ordering system is not responsible for creating invoices, the Invoicing system is. Therefore we cannot allow the Ordering system to take control of the Invoicing system by allowing it to use its control API’s. (See Figure 2)

No alt text provided for this image

Figure 2

Since we cannot allow the Ordering system to take control of the Invoicing system, we must allow the Ordering system to ASK the Invoicing system to perform some process(es). For example: the Ordering system cannot create a new invoice but it can ASK the Invoicing system to create an invoice. We can implement this on authoritative systems with Request API’s, that allow non-authoritative client systems to request authoritative systems to perform actions for them, as shown in figure 3.

No alt text provided for this image

Figure 3

It is important to be aware of the difference between Control API’s and Request API’s. Control API’s are used within an application or system. They are used in (user) interfaces for actors that have the authorizations to control the processes and data that the Control API’s give them access to. This is most often the case in client-server architectures, which falls in the realm application architecture. That is why we can also call them Application API’s.

Request API’s are used at the boundaries of an application or system. They are used by actors outside the business domain, that do not have the authorizations to control the processes and data of the application or system. Instead the Request API’s give these actors the opportunity to request the application or system to perform some action for them. The business domain crossing aspect of Request API’s make them fall into the realm of integration architecture. That is why we can also call them Integration API’s.

If you are currently using API’s in application integration, I suggest that you carefully review them again. If you fail to make the distinction between Application API’s and Integration API’s you may unwittingly find yourself in a lot of trouble.

Mark Klerks

Privacy officer at Legal DAF Trucks NV

4 年

So, wouldn't' the Integration API's hook into the Application API's somehow?

回复
Henk Verhaegh

Business Analyst (EDI) at DSV

4 年

Hi Piet nog steeds met integration bezig? Zie nu bij dsv ook steeds meer 'apies' voorbij komen. Ben jij nog niet met pensioen?

回复

要查看或添加评论,请登录

Piet Knijnenburg ??的更多文章

  • Climate Models

    Climate Models

    In 1656 Christiaan Huygens invented the pendulum clock, based on Galileo’s discovery the swing time of a pendulum…

    29 条评论
  • The science is settled

    The science is settled

    We have heard and read this claim a lot over the last few years. Let us be very clear: science can never be settled.

  • Evolutionary Architecture

    Evolutionary Architecture

    As Martin Fowler points out in the foreword of the book “Building Evolutionary Architectures”, as we moved from a…

  • The integration API transmogrification

    The integration API transmogrification

    Summary: Most software solution vendors offer the wrong API’s to integrate with other applications: “cruddy” API’s are…

  • Technology is irrelevant.

    Technology is irrelevant.

    The two letters in IT stand for Information Technology. Unfortunately, many regard the word ‘Information’ as an…

  • Available today . . .

    Available today . . .

    I'm proud to announce that as of today my book titled "Integration Architecture: beyond technology" is available on…

    2 条评论
  • Eierlegende Wollmilchsau

    Eierlegende Wollmilchsau

    At a MuleSoft summit, I once attended a very interesting presentation by Patrick Pissang, titled “How to manage a…

    2 条评论
  • Fouten op laag water

    Fouten op laag water

    “Het gebrek aan softwarekwaliteit leidt tot hogere kosten voor bedrijven dan de ontwikkeling van de software zelf of de…

  • Living Fossils.

    Living Fossils.

    In a recent post Nick Malik writes “One thing most Enterprise Architects have in common: frustration with resistance to…

    1 条评论
  • Digital Transformation

    Digital Transformation

    For some time I’ve been musing about one of the latest catch phrases “digital transformation”. The best definition of…

社区洞察

其他会员也浏览了