Interaction with Rest API for 100+ users

Hi All,
I working on a web form developed in .Net C# which interact with Anaplam Imports and Exports.
On Webform users will input data and on submit of webform data will push to Anaplan so how can i do achive this functionality , as of now i am checking with REST API provided by Anaplan.
I need clarity if multiple user(100+) will hit submit button on webform it will trigger API which start from Authentication(with single Authorization token) to import or export data. 
So is it feasible to do instant push data to Anaplan on click of submit or Anaplan need some time to finish one request and then work on other request.
Also when we submit data on Webform we need to validate certain fields whether its already present on Anaplan or not ,for that is it viable solution to hit API and do data validation ? Is it impact performance or it works instant for 100+ user concurrently with same Authorization token?  
Please help and suggest best approach as per performance and best practices by Anaplan.

Answers

  • Using the bulk api to launch possibly multiple parrallel imports or exports actions wont work as actions freeze the model for all users.

    I would recommend using the transactional api instead which allows direct data write at cell level as well as reading.

    It allows multiple parrallel calls of the api and wouldnt freeze your model the same way imports / exports actions do

  • Very cool idea! This is a perfect use case for Anaplan's Transactional APIs (as opposed to Bulk APIs). Additionally, I think this use case would benefit from OAuth, so that you can tie each user's submissions to their actual account in Anaplan.

     

    Some recommended reading:

     

    I'll answer some of your more specific questions below.

     

    So is it feasible to do instant push data to Anaplan on click of submit or Anaplan need some time to finish one request and then work on other request.

    Imports into Anaplan, whether via the UI or API, are blocking actions and thus need to be processed in sequence. However, you shouldn't need to worry about this from your application side, as Anaplan will queue the requests and process them one after the other. That said, if the specific sequence of the data you're sending is important, then you can build your application to send the requests synchronously by waiting for a completion response from Anaplan after each request.

     

     


    Also when we submit data on Webform we need to validate certain fields whether its already present on Anaplan or not ,for that is it viable solution to hit API and do data validation ?

    It depends on what kind of validation you need to do. Anaplan has some data format validation built in and will reject data that does not have the correct format (examples: sending a text value to a number field, or trying to populate a list formatted line item with a list item that doesn't exist). You will get these rejections back via the error dump. However, if there are things like range-of-value data validations (for example, if you need to enter a date later than today, or a value less than 1000), then you will need to validate the data on your end before sending, or leverage Anaplan logic to provide validaton and review of data in the Data Hub after it is loaded.

     

     


    Is it impact performance or it works instant for 100+ user concurrently with same Authorization token?  

    Per my prior comment, the data isn't "instant", but each request will be processed sequentially. Each of these actions lock the model. The amount of time it takes to load the data will depend on the size of each load and the general performance of the underlying model. The model should follow the best practices outlined in The Planual to ensure optimal performance.

     

    I will also call out that you probably shouldn't be using the same Authorization token for all 100+ users. While it is technically possible to do so, there are a couple reasons you shouldn't be doing this.

    1. As mentioned above, this is a perfect use case for OAuth. From an auditability standpoint, you still will want each user's inputs to be tracked against their user ID and that the model can respect the proper selective access or other permissions tied to that user ID.
    2. Having multiple users access Anaplan data using a "shared" ID may be a violation of the terms of your Anaplan license. I'd recommend checking with your Account Executive and Customer Success Business Partner before taking this approach.

    The performance and blocking considerations will be the same regardless of whether you use a single Authorization token or separate token for each user.