Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

However we only have a single detailed sample (with less data and no load) of the downstream requests from the check out API. That sample is not representative of the range of response times likely present in a whole performance test run using more realistic load parameters.

Thus, this analysis has to assume that the sample is representative whilst also interpreting it skeptically (because it is likely far more optimistic than the heavier load scenarios).

We also do not know:

  • why the response times of the constituent parts do not equate to the overall response time
  • what amount of time Okapi takes to process requests / responses
  • what amount of time mod-circulation takes to use this information to make decisions e.g. to apply the circulation rules

...

At the moment, the average request in our low load sample takes 62ms (including proxying overhead). This is more than double the budget we have available and we can expect the situation to be worse under load.

Whilst there are some outliers (that are still likely lower than under load numbers) that push up this number, I think this indicates the degree of challenge we have with the current approach.

...

IntentEndpointDestination Module

Sample Response Time (ms)

Sample Response Time of Token Check (ms)
Initial request


99
Fetch user (making the request)GET /users/{id}mod-users6
Fetch permissionsGET /perms/users?query=userId=={id}mod-permissions16
Generate downstream token

12
Fetch user (patron) by barcodeGET /users?query=barcode=={barcode}mod-users1386
Fetch manual blocksGET /manualblocks?query=userId=={userId}mod-feesfines1337
Fetch automated blocksGET /automated-patron-blocks/{userId}mod-patron-blocks546*27
Fetch item by barcodeGET /item-storage/items?query=barcode=={barcode}mod-inventory-storage163**10
Fetch holdingsGET /holdings-storage/holdings/{id}mod-inventory-storage579
Fetch instanceGET /instance-storage/instances/{id}mod-inventory-storage227
Fetch locationGET /locations/{id}mod-inventory-storage913
Fetch libraryGET /location/units/libraries/{id}mod-inventory-storage107
Fetch campusGET /location/units/campuses/{id}mod-inventory-storage107
Fetch institutionGET /location/units/institutions/{id}mod-inventory-storage117
Fetch service pointGET /service-points/{id}mod-inventory-storage98
Fetch material typeGET /material-types/{id}mod-inventory-storage87
Fetch loan typeGET /loan-types/{id}mod-inventory-storage228
Fetch existing loansGET /loan-storage/loans?query=status.name=="Open" and itemId=={itemId}mod-circulation-storage917
Fetch requestsGET /request-storage/requests?query=itemId=={itemId} and status==("Open - Not yet filled" or "Open - Awaiting pickup" or "Open - In transit" or "Open - Awaiting delivery") sortBy position/sort.ascendingmod-circulation-storage109
Fetch circulation rulesGET /circulation/rulesmod-circulation-storage1818
Fetch loan policyGET /loan-policy-storage/loan-policies/{id}mod-circulation-storage108
Fetch tenant localeGET /configurations/entries?query=module=="ORG" and configName=="localeSettings"mod-configuration1610
Fetch overdue fines policiesGET /overdue-fines-policies/{id}mod-feesfines198
Fetch lost item fees policiesGET /lost-item-fees-policies/{id}mod-feesfines1110
Fetch opening daysGET /calendar/periods/7068e104-aa14-4f30-a8bf-71f71cc15e07/calculateopening?requestedDate={{dueDate}}mod-calendar128
Fetch user (patron) groupsGET /groups?query=id=={groupId}mod-users177
Update item statusPUT /item-storage/items/{id}mod-inventory-storage19413
Create loanPOST /loan-storage/loanmod-circulation-storage168
Update (question) patron action sessionPOST /patron-action-session-storage/patron-action-sessionsmod-circulation-storage107
Fetch userGET /users/{id}mod-users615
Fetch patron notice policy

GET /patron-notice-policy-storage/patron-notice-policies/1a821238-0cd9-48d9-a71a-057d33df0154

mod-circulation-storage67

* The Vega team have already done some work to improve this

** The Core Platform team have already done work to improve this