Skip to main content

Notifications

Announcements

No record found.

Business Central forum
Answered

Cloud HeavyLoad Communication with ThirdPartySoftware

Posted on by 10
Hello everyone,

we use BC in the Azure cloud with a connection to a shop and other third-party systems. There we have SOAP and OData calls limited to a maximum of 600 calls per minute. Unfortunately, this is not enough for us and we are looking for a way to increase the frequency of communication with third-party systems and with high performance.

Is there a way to implement this in Azure, e.g. with an API gateway? Maybe with a new technology? RPC ?

I would be happy about suggestions for a solution.

VG
Volrath
Categories:
  • Reza87 Profile Picture
    Reza87 10 on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    I forgotten to tell you that BC has to respond to the request immediatly. So handling Requests in batches would not fit into because then we have to delay the request.

    How would the API Call with the QueueTrigger be like? Would it consume the SOAP/OData limits?

  • Suggested answer
    Stefano Demiliani Profile Picture
    Stefano Demiliani 37,160 Most Valuable Professional on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    I forgot also to mention that you can also use batching to perform many operations in one call. Instead of issuing multiple requests, one request can be issued. Please be aware of the batch size. If the batch is too large, a timeout will occur.

  • Suggested answer
    Stefano Demiliani Profile Picture
    Stefano Demiliani 37,160 Most Valuable Professional on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    A QueueTrigger is an Azure Function that starts when a message is inserted into the queue. Inside this function you call BC APIs. If it’s real time you need to handle throttling if too much requests are sent to BC, no way of avoiding this. But in this way the transaction is reliable (you don’t loose messages in case of exceptions and you can remove the message from the queue only when the data is successfully submitted to BC).

  • Volrath Profile Picture
    Volrath 15 on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    A TimerTrigger would not fit in our requirements, because we need the response from BC synchronously to the request.

    How would the queue trigger look like and how will it call BC without using a SOAP/OData Call?

  • Suggested answer
    Stefano Demiliani Profile Picture
    Stefano Demiliani 37,160 Most Valuable Professional on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    If you have a third-party system directly calling BC APIs, you’ve request limits to respect. You can implements retry Logic to handle this scenario if HTTP Too Many Requests error is received.

    if you don’t want to do this, I suggest to decouple the external system from BC (best approach in general if you have an high number of transactions). To do that, you can create a queue on Azure receiving the messages from the external system (with the frequency you want). Then a Queue Trigger or Timer Trigger Azure Function can read the data from the queue and call BC.

    in this scenario your transactions are reliable and you can push/pull messages with the desired ratio.

  • MahGah Profile Picture
    MahGah 15,419 on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    Hi

    Maybe contact Stefano Demiliani  https://demiliani.com/  and see if he can think of any solution. 

    Also, look into Cloud Replicator by Erik Houggard and see if he can be any help  https://www.hougaard.com/blog/

    appsource.microsoft.com/.../PUBID.efoqus-5058796|AID.replicator|PAPPID.18a4d438-88d1-44ee-a38d-3c0ea0d77338

  • Volrath Profile Picture
    Volrath 15 on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    For example, would it be an option to implement an Azure Function that accepts HTTP requests and forwards them to Business Central with high performance? BC must be able to consume the Azure Function via the corresponding DLL.

    Currently it would be enough for us if BC consumes the requests (read).

  • Volrath Profile Picture
    Volrath 15 on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    No ideas? Is perhaps a solution via a proxy a possibility?

  • Suggested answer
    Marco Mels Profile Picture
    Marco Mels on at
    RE: Cloud HeavyLoad Communication with ThirdPartySoftware

    Hello,

    This is a typical question for an implementation partner.  Hope you will get a few good answers.

    Thank you.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Anton Venter – Community Spotlight

Kudos to our October Community Star of the month!

Announcing Our 2024 Season 2 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Dynamics 365 Community Newsletter - September 2024

Check out the latest community news

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 290,558 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 228,647 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,148

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans