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.
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.