Performance & Scalability: Procivis One Key Advantage #5

In today’s digital world, performance is not just a technical metric. Customers expect services to respond instantly, and in an age of 5G and always-on connectivity, even a one-second delay can feel like an eternity. The success of any digital service depends on its ability to deliver a seamless, responsive experience. That’s why we designed Procivis One with performance and scalability at its core. From the technologies we chose to the architecture we implemented, every decision was guided by performance and scalability in mind. Procivis One can serve millions of users and can handle millions of credentials and transactions.

At Procivis, we have developed distinct advantages that make our solutions stand out in the marketplace. These advantages deliver tangible benefits and address the real challenges organizations face with digital identity. Over the next several weeks, we'll explore the key advantages that set Procivis One apart in an article series. It is the unique combination of properties that sets Procivis One apart in the market:

Flexibility and Interoperability | Enterprise-Ready | End-to-End Experience | Privacy by Design | Scalable Performance | Deployment Freedom

Why Performance and Scalability matters?

It may sound obvious: users love fast responses, and operations teams value scalability.

When we began shaping the vision for Procivis One back in 2022, performance and scalability were always in our focus. We knew we had to build a platform capable of serving millions of users and managing millions of credentials—reliably, securely, and instantly.

At the time, available technologies for next generation digital identity systems were falling short. Many implementations were built with programming languages and protocols that simply couldn’t scale efficiently. While they proved valuable for pilots and small-scale rollouts, they often struggled beyond a few thousand users. We saw an opportunity—not just to improve performance, but to fundamentally reimagine what a next generation digital identity solution could be.

Trust in (T)Rust

When selecting the technology for Procivis One Core, we made a deliberate choice not to take the easy road. The easy choice —whether in the form of using existing libraries or choose a language with a large pool of available developers—was never our primary driver. Instead, we focused on what the platform truly needed: security, reliability performance and scalability. Only languages that met these criteria made it onto our shortlist—namely, Go, Java and Rust. At the end, we decided for Rust. Rust has low minimal hardware requirements compared to Java, has a lot of advantages when it comes to security, and it is widely used in the cryptographic community.

Poster in the Procivis Office

What the numbers say?

Real-world numbers speak louder than claims.  Running on a small standard Azure instance, Procivis One Core consumed just

  • 287MB of RAM and
  • 0.61 of a virtual CPU

while issuing 20 credentials per second (including acceptance by the Holder).

This was achieved with 75 parallel threads and an 0% error rate. Errors began to appear beyond 150-200 threads.

At that rate, a single “small” server can issue over 1.7 million credentials per day—all without compromising performance or reliability. In short: Procivis One Core will never be the bottleneck. It’s built to support national-scale infrastructure with the kind of resilience, speed, and efficiency governments can count on.

Lightweight by design

Procivis One Core isn’t just powerful—it’s incredibly efficient. In idle state, it consumes just

  • 19MB of RAM and
  • 0.029 virtual CPU,

making it ideal for deployment in environments where resources are limited. This lightweight footprint is crucial, as the Core is designed to function not only in server environments but also as an SDK on smartphones and even on IoT devices. Whether running on edge hardware, embedded in mobile applications or on IoT devices, Procivis One Core delivers full functionality (Issuer, Holder, Verifier) .As we use one code base for everything!

Compared to other frameworks

To put our work into perspective, we are constantly benchmarking Procivis One Core against other available frameworks. The outcome is clear: no other framework came close to matching our performance. The most striking difference was the process time (e.g. issuing a credential) where the next best tested solutions showed response times 10 times slower with the same setup and load. This not only can result in a very frustrating user experience but also places strain on infrastructure.

Resilient, Even in Low-Bandwidth Environments

Beyond high-performance and scalability, Procivis One is also designed for use in challenging network conditions. Our technology supports offline-offline interactions, enabling proximity-based use cases as defined in ISO 18013 and the verification of verifiable credentials without the need for internet connectivity.

In addition to offline capabilities, we tested the platform in online scenarios with extremely limited bandwidth and poor network coverage. Even under these conditions, Procivis One maintained reliable performance—proving its suitability for real-world environments where connectivity can’t always be guaranteed. This ensures that identity verification remains accessible and functional.

Even when operating with more complex identity protocols like OpenID, Procivis One maintains its performance advantage. In our tests, we achieved processing times of around 10 seconds for both credential issuance and verification, with a 0% error rate. This includes the full execution of the OpenID flow—demonstrating that high assurance and protocol compliance do not come at the expense of speed or reliability.

Setup

  • iphone 11 in developer mode.
  • Server: Azzure cloud
  • Mobile: Edge

Issuing with Edge

  • 890ms ping
  • 0,19Mbps up
  • 0,26Mbps down

Result

  • ~10 seconds from scanning to storing the credential in the wallet
  • 10 trials without error

Verification with lower Edge

  • 1086ms ping
  • 0,12Mbps up
  • 0,08Mbps down

Result:

  • ~12 seconds from scanning of the proof request QR code to credential verification
  • 10 trials without error

APPENDIX - Details for idle and load tests

The purpose of this performance report is to evaluate the resource utilization and overall efficiency of Procivis One Core. The investigation focused on analyzing CPU and memory usage in two key scenarios:

  • Idle State: The application was monitored without any incoming requests to assess its baseline resource consumption. This provides insight into how efficiently the system operates when not actively in use.
  • Under Load: The application was subjected to a simulated load of 75 concurrent threads to evaluate performance under real-world stress conditions. This scenario measured how well the system scales with increased demand, with a focus on CPU utilization, memory consumption, and system stability.

It’s important to note that the performance test was conducted using a non-standard deployment configuration: both the issuer and holder components were running on the same core instance. In a typical production environment, these roles would be distributed:

  • The issuer would operate on a server-based instance.
  • The holder would function through a mobile wallet.

Running both components together introduces additional load on the test environment, as the system must handle:

  • Database operations related to credential issuance and local storage on the holder side.
  • Cryptographic processing, including signature generation for the holder.
  • An overall increase in computational demand due to the combined workload.

This configuration was selected for test simplicity, as enabling real-time signing with the holder key would have required additional implementation effort in the benchmarking toolchain. However, it’s important to interpret the results with this context in mind—actual CPU and memory usage in a real-world distributed deployment is expected to be lower.

General Setup

For executing the load tests we decided to use JMeter. The test scenario we used following protocols:

Protocol: HTTP

Exchange: OpenID4VCI

Credential format: W3C VCDM 2.0 SD JWT with one string claim

Revocation method: None

Issuer DID method: DID:KEY

Holder DID method: DID:KEY

Issuer key algorithm: Ed25519

Holder key algorithm : Ed25519

Results IDLE state

Memory consumption in idle state

CPU usage in idle state

Results under LOAD

During the load test, the application was subjected to a simulated workload of 75 concurrent threads to evaluate its performance under stress conditions. The following key observations were made:

  • Memory Consumption: Under load, the application used approximately 287 MB of memory. This is an expected increase from the idle state, reflecting the resources required to handle concurrent requests, manage database interactions, and execute cryptographic operations during credential issuance.
  • CPU Utilization: CPU usage reached 0.6 virtual CPUs, demonstrating the application’s ability to process multiple parallel requests while maintaining stable performance and responsiveness.
  • Error Rate: The system maintained a 0% error rate throughout the test. All credential issuance operations completed successfully, indicating high reliability even under simulated production load.
Memory usage under load



CPU usage under load

Secure & Future-Proof Digital Identity for Governments and Businesses

You want to know more about our secure, compliant, and future-proof digital identity solutions? Get in touch with us!