Comments (1)
The BC Gov Digital Trust team would like to know the current capacity (measured in transactions per minute) of select BC Gov verifiable credential issuers and verifiers. The goal is to understand if the services are capable of processing loads that might be expected when the opportunity to receive and present the credentials is opened to the general public. As the teams iterate on the service deployments, we’d like to be able to rerun the load tests to see the impact on the capacity as progress is made on the services.
The services under test will run in a test environment using minimally modified versions of the issuers and verifiers. The load test documentation produced from this effort must cover how to integrate the load test generator with the systems to be tested (issuers, verifiers, mediator). The BC Gov maintainers of the issuers, verifiers, and mediator to be tested will make the changes necessary for running load tests. The Aries community has used the open source tool Locust for generating loads. Locust is designed to generate a load by executing defined scripts at specified rates. Barring a better choice, Locust will be used to run a load generating script that spins up a simulated wallet at a defined rate to:
- Connect to the testing mediator instance.
- Request the issuance of a credential from the designated issuer service.
- Periodically completes a presentation request/presentation sequence with a designated verifier service.
The load test generator must be capable of producing the following sustained load:
- 38 issuances per minute
- 165 verifications per minute
Ensuring that the services can sustain such a load is the responsibility of the BC Gov maintainers responsible for those services. An execution of the load test generator with mocked issuer, verifier, and mediator services is sufficient to demonstrate that capability.
The existing implementation of a similar capability uses an instance of Aries Framework JavaScript per wallet, which puts a very heavy load on the load generator system itself, such that the test runs frequently crash the generator before hitting the capacity of the systems under test. We expect that the scripting process will need to be implemented to use a multi-tenant version of Aries to reduce the resource usage on the load generator. Each wallet will be a tenant in a single, scalable instance of Aries.
The proposed architecture for the implementation:
from ditp.
Related Issues (20)
- [Bug] No active revocation registry for existing credential definition HOT 14
- DEV Env - Traction environment Endorser alias renames HOT 1
- Company name changes - update in Orgbook test required HOT 5
- OrgBook
- Define reservation form requirements for Traction dev/test/prod and sandbox HOT 1
- Experiment with Load Test Generator in preparation for use with IDIM Issuer and a Verifier HOT 2
- Real-life integration of the VC Load Tester HOT 1
- Move Traction OIDC capabilities over to digitaltrust-citz Keycloak realm HOT 7
- Decomission digitaltrust-nrm Keycloak realm HOT 2
- Create an ACA-Py plugin that implements the new (proposed) DRPC protocol HOT 4
- Transition to GH Projects HOT 3
- Preparation for an OpenShift/Traction Load Generator Test
- Transition to GitHub Projects for DITP Enterprise Teams HOT 1
- Remove BCOVRIN-DEV usage and documentation HOT 1
- Update projects to v2 protocols HOT 5
- DevHub Documentation HOT 2
- Compile generic proof-request templates for Person use-cases
- Review Test harness ACA-Py to Credo results HOT 1
- Dependency matrix/tree for Aries projects
- Set up Traction Contractor Credential Issuers for CSB/CDT HOT 31
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ditp.