- Clients send queries to nodes in order to publish new entries and query materialised documents
- Queries are sent via HTTP using the GraphQL language
- Serving a GraphQL API and handling requests is implemented in nodes, for example Aquadoggo
- Large numbers are encoded as strings in the payloads (
logId
and seqNum
) to account for the lack of support to represent u64 integers in JSON
- The client api is the interface for communication between node and client
- Clients can publish entries
- Before that, clients can retrieve parameters required for encoding entries if they can't compute them independently
- Clients can retrieve materialised documents of a given schema
- Documents can be filtered by individual fields
- Linked documents can be retrieved
- Documents can be sorted by arbitrary fields
- Documents can be sorted by self-referential orderings
- Documents can be queried by
document_view_id
in order to receive a [documents][view] onto its data at a specific materialised state