openwallet-foundation / acapy

ACA-Py is a foundation for building decentralized identity applications and services running in non-mobile environments.
https://aca-py.org
Apache License 2.0
412 stars 512 forks source link

Performance testing for acapy #2532

Closed nahid-g closed 10 months ago

nahid-g commented 1 year ago

What is the most effective way for conducting performance testing on an acapy instance or an application built on acapy? Is there any framework? We are trying to calculate latency and throughput of transactions.

swcurran commented 12 months ago

There is work currently happening in ACA-Py for implementing a load test generator. This is a Code With Us opportunity funded by BC Gov (details here) and awarded to Indicio. We’ll be talking about the design tomorrow (Tuesday) on the ACA-Pug Meeting at 8:00 Pacific / 17:00 Central Europe. With that capability, you will be able to run the load test generator as a set of holders (configurable how many, how many activities), hitting various “systems under test” Issuers and Verifiers, possibly with a mediator in front of the holders.

Another data point. BC recently reloaded the “dev” version of OrgBook BC that holds about 2.5M credentials on start up. The implementation is an ACA-PY issuer issuing all of the credentials to a single ACA_Py holder (a so-called “community wallet”). During the loading, without much tuning, the systems had a sustained rate of about 30 issuances/second.

swcurran commented 10 months ago

For guidance on performance testing ACA-Py, please look at Aries Akrida, which provides capabilities for such testing. BC Gov will be using Aries Adrida in the next short while to understand the performance characteristics of ACA-Py.