SAP Logo LeanIX is now part of SAP
Question

Interfaces: Real-Time or On Demand, when do you use each?

  • 18 May 2023
  • 9 replies
  • 313 views

Userlevel 1

I think I heard that real-time was appropriate for IOT, and ad hoc for RESTful API’s. How are you using these values? What about Kafka?


9 replies

Userlevel 4
Badge

Hello @MSKLeanIXpert ,

I hope I got you question correctly:

As so often the answer is usage of real-time or ad hoc depends on a use case. We use real-time as long as any change of and interfaced value triggers a change (create, update or delete). E.g. A customer is set inactive in ERP, it is immediately transferred to our CRM.

An interface is categorized as ad-hoc data is on retrieved in real-time, but only it is requested by the client. E.g. when we need to select an opportunity from our CRM in our CPQ, we send a request to CRM for a customer to fill a drop-down as soon as a certain form is opened.

For IOT it also depends on the use case. If data is needed just to be received on demand as a snapshot you may also use it as an ad-hoc interface. But I agree that this is an exception, so I’d usually expect that real-time interfaces are the common approach for IOT.

Sorry, we do not use Apache Kafa, so I can give no comment on that.

Best regards,

Carsten

Userlevel 6
Badge +2

Hi @MSKLeanIXpert, Real-Time = Data is pushed to the consumer as soon as it updates, while On Demand = the client pulls new data whenever it is required.

Userlevel 1

Appreciate the feedback Carsten & Tom. I read in LeanIX documentation that On Demand is manually triggered, and Real-Time is automated connect as needed. So in that light, almost all interfaces would be Real-Time. I will likely change the language to be clearer. If you are listening @LeanIX, I’d like to see help text for all fields with value choices, rather than having to look them up or ask here.

Modeling: Interfaces (leanix.net)

Is Manually Triggered more clear than On Demand?

Userlevel 6
Badge +2

@MSKLeanIXpert I have a slightly different opinion about your point that almost all interfaces would be real-time according to the definition above. Let’s say we have a web app, and at some point, the user needs to select a customer from a list. If this customer list is loaded dynamically from some kind of customer management system, whenever the user needs it, this would - in my opinion - rather fulfill the definition of „On Demand“. However, if the customer management system pushes the data to other connected systems on every data change, e.g. via an eventing mechanism, this would be the the Real-Time case.

Userlevel 3

Hi @MSKLeanIXpert, Real-Time = Data is pushed to the consumer as soon as it updates, while On Demand = the client pulls new data whenever it is required.

I tend to agree with Thomas’ statement above. Real-time would be suitable when data is pushed, when On-Demand is the right option for pulled data.

However, as life is always made of exceptions, I think that On Demand could also be suitable  when a full automated interface is triggered “manually”. But I might be then starting another discussion about “On demand” vs “Manual” 😁

Userlevel 1

Careful, this is a frequency measure. Perhaps ‘all the time’ and ‘whenever’ is the implication. I don’t see much use distinguishing. Now that we’ve had all this back and forth, how do each of you use the two values?

Userlevel 3

Real time = data pushed by the providing applicaiton shortly (< 1h) after it has been updated
On demand = data pulled by the consuming applications when it needs it OR when the data is pushed on an ad-hoc basis (i.e. when somebody decides this is needed)

Userlevel 6
Badge +2

Now that we’ve had all this back and forth, how do each of you use the two values?

Honestly I barely use them at all. Whenever I do, my definition is almost identical as @Didier.Nowak , but I have never seen a use case where a change in the Frequency field would make a difference for a decision taken based on the data, or for any kind of visualization/report.

To me, it’s a typical example of an optional data attribute that I would never enforce in my data quality guidelines, because the value it provides is nowhere near the effort it takes to maintain correctly.

Userlevel 5
Badge +1

Hi all, great discussion going on here. I moved it to this category, as it just better fits. 

Reply