---
# System prepended metadata

title: API Scaling Testing

---

# API Scaling Testing

### API Configuration

- Configure Credentials API to run 10 processes in a container using nginx
- Configure Wallet API to run 10 processes in a container using nginx
- Configure Provider API to run 5 processes in a container using nginx

### Test Scenarios
- Scenario 1: No App Service Plan scaling, single VM
- Scenario 2: Fixed App Service Plan scaling, 5 VMs

### Test Endpoints

All endpoints used in testing should not include calling external agents, like sending credential to connection, etc. All tests must include single endpoint, not a combination of multiple.
Each endpoint is associated with a single test.

- Credentials API
  - Create **connectionless** credential offer (`connectionId: null`)(https://docs.trinsic.id/reference#createcredential)
  - Create connectionless verification from policy (https://docs.trinsic.id/reference#createverificationfrompolicy)
- Wallet API
  - Create new wallet (https://docs.trinsic.id/reference#createwallet)
  - Get a single record (Connection, Credential, etc) (https://docs.trinsic.id/reference#getcredential-1)
  - List all credentials for verification (https://docs.trinsic.id/reference#getavailablecredentialsforverification)

### Test Theories

Run each test for 2 min using Load configuration. Max acceptable avg response time is 3 sec.

Data to capture for each run:

- Endpoint
- Scale Out used (Scenario 1 vs 2)
- VUs
- Average Response Time,
- Average Requests per Seconds

#### Test Runs

- Credential API
  - Scenario 1 (capture RPMs and avg response for each endpoint)
    - 20 VUs
      - All endpoints
    - 50 VUs *(or other number that makes sense for that endpoint based on previous runs)*
      - All endpoints
    - Gradually increase VUs count by 20 until avg response time exceeds max acceptable response time
  - Scenario 2 (same as above)
- Wallet API
  - Scenario 1 (same as above)
  - Scenario 2 (same as above)


## Results

If possible, please monitor and capture the CPU and Memory load of the Azure VMs.
Feel free to add any relevant metrics not captured here.

#### Credential API

| Endpoint         | Scale Out (1 or 5) | VUs | Avg response time | Avg req per sec | CPU load | Memory Load|
| ---------------- | ------------------ | --- |------------------ | ----------------|----------|------------|
| Credential Offer |1|20| | |
| Credential Offer |1|50| | |
| Credential Offer |5|20| | |
| Credential Offer |5|50| | |


