02/01/2023 | News release | Distributed by Public on 02/01/2023 13:06
When monitoring an application built around SaaS, it's always interesting to measure the DocuSign platform performances linked to the API functions being used.
For this post, I will limit this analysis to three main functions: CreateEnvelope, GetDocuments, and signing an envelope in the scope of eSignature solution. This will allow us to see quickly what to expect in terms of transaction latency, depending essentially on the data size and the number of fields defined in the envelope.
An API transaction duration is decomposed into three main steps:
To benchmark the performance of DocuSign API servers, I've made all these measures in the production environment, as presented in the sections below, corresponding to a running of several days on all platform traffic in order to be representative enough.
Of course, these results must be interpreted as indicators only, since, in the individual case, transaction latency depends on many factors inherent to the platform and the transaction payload: the DocuSign resources available, traffic on the platform, the account server site, envelope specifics, and also external factors: network bandwidth, hardware limit, and so on.
Envelope creation
For this benchmarking exercise, I monitored the eSignature REST API envelope creation function Envelopes:create.
The measured times are the combination of the time spent on the server [2] and the time spent on the network [1+3].
In the graph below, four curves have been extracted as functions of the request size being processed: three curves are tracing the average transaction duration for different numbers of fields defined in the envelopes (≤5 ; 5<x<20 ; ≥20), and the last curve is tracing the 95 percentile (95% of all envelopes completing in that time or less).
As an example, for an envelope creation request embedding 1MB of data (see the first vertical tick bar), this graph shows:
As you can see, these datasets are quite volatile because they depend on many factors. It allows us, though, to derive a good trend indicator.
On the demo platform, we expect to have durations in general 40% higher than in production for this function.
Get documents
For this exercise, I monitored the eSignature REST API get document function EnvelopeDocuments:get.
The measured times are the combination of the time spent on the server [2] and the time to give the result to the client [1+3]: the green and blue curves.
Knowing that a lot of data can circulate from the server to the client when retrieving these documents, it is interesting to isolate the time spent to process the query on the server only [2]: the orange curve.
The processing time here is not dependent on the number of fields defined in the documents.
As an example, for a GetDocument request that returns 1MB of data, this graph shows:
As might be expected, the time duration is really dependent on the time spent on the network; and this ratio increases with the size of the documents, whereas the processing time on the server is quite stable.
On the demo platform, we expect to have durations similar to production for this function, since there are few processes created.
Signing an envelope
This is the signature made inside the signing ceremony through the DocuSign web page by the envelope signer. The query is sent from the time the FINISH button is clicked and is terminated when the user regains control.
In the graph below, four curves have been extracted as functions of the request size being processed: three curves are tracing the average transaction duration for different numbers of fields defined in the envelopes (≤5 ; 5<x<20 ; ≥20), and the last curve is tracing the 95 percentile.
As an example, for an envelope signature embedding 1MB of data, this graph shows:
On the demo platform, we expect to have durations similar to production when doing a signature.
How to get these transaction times for your own account
It is possible to extract these times for any individual API transaction in the API Dashboard under the DocuSign web UI. That excludes signature operations, though.
They are labeled as:
How to troubleshoot API transaction slowness
Additional resources