Do we need to run PQS if I already have a Canton Participant backed by PostgreSQL?

The Participant Query Store docs details the use cases where PQS is an attractive option – essentially PQS (Participant Query Store) is the most efficient mechanism to query the state and history of the ledger, while minimizing the demand on the participant node.

Particularly if you want to query across a large population of active and archived contracts, PQS will be a more efficient option.

You can use Daml’s JSON API when you want a simple, HTTP/JSON-based way to interact with the ledger, especially for basic active contract set queries and command submissions. It is well-suited for development and smaller-scale applications because it provides an easy-to-use interface over the Ledger API and supports common operations like querying active contracts and submitting commands via HTTP. However, it can be inefficient for large datasets, production use and complex queries, and in those cases PQS is preferred. [1] [2] [3]


  1. Query Store — Daml SDK 2.10.0 documentation ↩︎

  2. How well does the json-api query store perform under heavy workloads? ↩︎

  3. Query Store — Daml SDK 2.10.0 documentation ↩︎