Artifact c233e90689c71a2bc9d8f3c0fc6e3f6f3eb01cbb22a67c3ae786851e1259703f:
- File
go.mod
— part of check-in
[564f272d3c]
at
2026-08-25 19:24:56
on branch ops-history
— ops: history, not just a snapshot
The rings die with the process, and this fleet restarts constantly — a 4.24s render and a 546 load average both left no trace. obs.Sink had one implementation and it did nothing; this is the durable one.
DuckDB because the workload is columnar: append-only, time-ordered, aggregate-queried, never point-looked-up by a page. RFC 0001 defers the lake to 'when hydration and analytics — the things columnar is for — exist', and reserves the operational surface for SQLite. This is that analytics workload, not a second operational store. Wide flat tables, no keys and no indexes, which is also what a Parquet COPY TO wants when the lake arrives.
Isolated behind a build constraint, in its own package, imported only by the composition root. Both halves of the reason were measured rather than assumed: CGO_ENABLED=0 fails on go-duckdb's bindings, and GOOS=js reports 'build constraints exclude all Go files'. Leaving the import off the request path is not enough — any reachable import breaks a wasm build — so cmd/quarry has two files, one per side of the tag. Verified: GOOS=js GOARCH=wasm builds cmd/quarry clean at 76MB, without DuckDB.
Buffered, never a write per request, and flushed on a timer so a quiet forge still lands rows rather than holding them in memory for days.
Failure is not fatal. The first run failed on 'at' being reserved in DuckDB; the server started anyway, the panels worked, and the log said what was wrong. Analytics is derived data about a forge that works without it.
Costs, measured: +462MB module cache, binary 57MB -> 104MB, cold build +10s, and CGO_ENABLED=0 no longer builds the server. (user: dmestas, size: 2505) [annotate] [blame] [check-ins using] [more...]
module craftdesign.group/quarry go 1.26.5 require ( github.com/alecthomas/chroma/v2 v2.27.0 github.com/danmestas/dagnats v0.0.13 github.com/marcboeker/go-duckdb/v2 v2.4.3 github.com/microcosm-cc/bluemonday v1.0.27 github.com/nats-io/nats-server/v2 v2.14.5 github.com/nats-io/nats.go v1.53.1 github.com/ncruces/go-sqlite3 v0.35.3 github.com/tetratelabs/wazero v1.12.0 github.com/yuin/goldmark v1.8.5 github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc golang.org/x/crypto v0.55.0 golang.org/x/net v0.58.0 ) require ( github.com/antithesishq/antithesis-sdk-go v0.7.2-default-no-op // indirect github.com/apache/arrow-go/v18 v18.4.1 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/dlclark/regexp2/v2 v2.2.1 // indirect github.com/duckdb/duckdb-go-bindings v0.1.21 // indirect github.com/duckdb/duckdb-go-bindings/darwin-amd64 v0.1.21 // indirect github.com/duckdb/duckdb-go-bindings/darwin-arm64 v0.1.21 // indirect github.com/duckdb/duckdb-go-bindings/linux-amd64 v0.1.21 // indirect github.com/duckdb/duckdb-go-bindings/linux-arm64 v0.1.21 // indirect github.com/duckdb/duckdb-go-bindings/windows-amd64 v0.1.21 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/goccy/go-json v0.10.5 // indirect github.com/google/flatbuffers v25.2.10+incompatible // indirect github.com/google/go-tpm v0.9.8 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/css v1.0.1 // indirect github.com/klauspost/compress v1.19.2 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect github.com/marcboeker/go-duckdb/arrowmapping v0.0.21 // indirect github.com/marcboeker/go-duckdb/mapping v0.0.21 // indirect github.com/minio/highwayhash v1.0.4 // indirect github.com/nats-io/jwt/v2 v2.8.2 // indirect github.com/nats-io/nkeys v0.4.16 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/ncruces/go-sqlite3-wasm/v3 v3.2.35304 // indirect github.com/ncruces/julianday v1.0.0 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/mod v0.36.0 // indirect golang.org/x/sync v0.22.0 // indirect golang.org/x/sys v0.47.0 // indirect golang.org/x/telemetry v0.0.0-20260508192327-42602be52be6 // indirect golang.org/x/time v0.15.0 // indirect golang.org/x/tools v0.45.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect )