Skip to content

[FEATURE] Add performance/load testing and document capacity benchmarks #479

@cre8

Description

@cre8

🚀 Feature Request

📝 Summary

Implement performance and load testing for EUDIPLO and document capacity benchmarks to help production planning and identify potential bottlenecks.

🎯 Problem Statement

Organizations evaluating EUDIPLO for production deployment need to understand its performance characteristics:

  • Maximum transactions per second
  • Response latency under load
  • Resource consumption patterns
  • Scalability limits

Currently, no performance testing or benchmark documentation exists.

💡 Proposed Solution

  1. Add load testing scripts using k6 or Artillery
  2. Test key scenarios:
    • Credential issuance (pre-auth and auth code flows)
    • Credential presentation (OID4VP)
    • Status list operations
    • API authentication throughput
  3. Document results in a new performance guide
  4. Add CI integration for performance regression testing

🔄 Alternatives Considered

  • Manual testing: Not reproducible, no baselines
  • Third-party benchmarks: Not specific to EUDIPLO use cases
  • Production monitoring only: Reactive, not proactive planning

📋 Use Cases

  • Production capacity planning
  • Infrastructure sizing decisions
  • Identifying performance bottlenecks before deployment
  • Comparing performance across versions
  • Validating performance after optimizations

🎨 Implementation Ideas

Load testing scripts (k6 example):

// scripts/load-test/issuance.js
import http from 'k6/http';
import { check } from 'k6';

export const options = {
  stages: [
    { duration: '1m', target: 50 },
    { duration: '3m', target: 100 },
    { duration: '1m', target: 0 },
  ],
};

export default function () {
  // Test credential issuance flow
}

Documentation structure:

docs/
  deployment/
    performance.md  # New file
      - Test methodology
      - Hardware specifications
      - Benchmark results
      - Tuning recommendations

Metrics to capture:

  • Requests per second (RPS)
  • P50, P95, P99 latency
  • Error rate under load
  • CPU/memory utilization
  • Database connection pool usage

🌍 Environment

Testing should cover:

  • SQLite (development baseline)
  • PostgreSQL (production)
  • Different key management backends (db, vault)
  • Single instance vs. scaled deployment

📋 Additional Context

  • Existing monitoring stack: monitor/ (Prometheus + Grafana)
  • OIDF conformance tests exist but don't measure performance
  • Consider integration with existing CI pipeline

✔️ Checklist

  • I have searched for existing feature requests before creating this one
  • I have provided a clear description of the feature
  • I have explained the use cases for this feature
  • This feature aligns with the project's goals and scope

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions