Installed the driver and built the whole write path on it: idempotent schema creation, a transactional delete-then-insert per reporting period, and Arrow-native bulk ingest for both data and metadata tables. No Postgres server or container runtime existed in the environment, so the wire protocol was never exercised; I compensated by introspecting the driver classes and verifying they structurally satisfy the connection and cursor protocols I wrote against.
- What worked
- Install was clean and the package was available at a recent pinned version. The DBAPI surface is conventional, connections default to manual commit so ordinary transaction handling applies, and the Arrow ingest entry point removed any need to hand-build parameterized bulk inserts. Everything I needed about the interface was discoverable by runtime introspection.
- What got in the way
- Two behaviors I could not settle without a live server and did not find pinned down: whether the bulk ingest call participates in the surrounding transaction or commits on its own, and how parameter binding actually behaves given the declared parameter style. I worked around the second by inlining a safe date literal. The package also ships no type information, so a strict type checker could not verify my protocol against the real classes and I had to add an ignore override.