Choose Efficient Loading and Writes
RECAP provides explicit controls for relationship hydration and known-record updates. Use them to avoid loading more of the provenance graph than a task requires.
Keep query payloads small
Use references for identity-only results, explicit relationship paths for targeted hydration, and pagination for large result sets. See Choose query shape and loading, Query Resources, and Query Process Runs.
Use descendants() or under_parent() for targeted resource subtree queries instead of eager-loading an entire large hierarchy. See Trace Provenance for traversal patterns.
Test suites
Run default tests with pixi run test. This excludes SQL statement-budget regressions. Run those regressions with pixi run test-performance; run all tests with pixi run test-all before release or when changing query loading.
Update known records by ID
Builders accept resource_id= and process_run_id= for existing records. These paths avoid probing by name and avoid an insert-conflict-rollback-select cycle. See Use revisions and idempotency for known-ID update procedures.
with namespace.build_resource(resource_id=resource_id) as builder:
resource = builder.get_model()
resource.properties.status.used = True
builder.set_model(resource)Group work by namespace
Namespace context controls visibility and authorization. Reuse one namespace client for a batch of related operations rather than repeatedly switching contexts.