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

We’ve deployed a Canton-based Daml ledger on EKS with the following components:

  • Domain (manager, mediator, sequencer)
  • Participant (with PostgreSQL backend)
  • HTTP JSON API

Everything is working fine and we’re able to interact with the ledger using the HTTP JSON API.
Is it necessary or recommended to run the Participant Query Service (PQS) separately in this setup?
What benefits does PQS provide if we already have PostgreSQL and the HTTP JSON API in place?

1 Like

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 ↩︎

Could you please assist me in finding any reference document for installing pqs on eks cluster and also guide which image we can use that can be used on eks?

It is available as a docker image, from the same repository as where you run Canton images (if you have an Enterprise license)

docker pull digitalasset-docker.jfrog.io/participant-query-store:0.5.0

And you can follow the PQS docs for details on the configuration options available to run

$ docker run -it digitalasset-docker.jfrog.io/participant-query-store:0.5.0 --help
Picked up JAVA_TOOL_OPTIONS: -javaagent:/open-telemetry.jar
Usage: scribe COMMAND

An efficient ledger data exporting tool

Commands:
  pipeline     Initiate continuous ledger data export
  datastore    Perform operations supporting a certified data store

Run 'scribe COMMAND --help[-verbose]' for more information on a command.