Iceberg v3 finally lets AI send JSON payloads through the warehouse
Iceberg just shipped version 3 with a new variant type called variant. It stores arbitrary JSON — nested objects, arrays, even null values — in a single column. Before this, you had to flatten everything into rows or dump it into a string and parse it later. Now a query can reach into a field like payload.request[0].amount without writing a ton of JSON functions.
The reason this lands hard for the kind of side hustles and small operations running on modern data stacks is that AI agent frameworks dump their outputs as JSON all the time. Tools like CrewAI, LangGraph, and the OpenAI agent SDK return structured results that vary from call to call. Iceberg v3 lets you write that raw payload into a table and query it directly — no schema migration, no ETL glue, no separate key-value store. It just sits there.
Iceberg is already the open table format of record for warehouses. Adding variant means the format can carry both the columns you query with SQL and the blobby stuff that doesn't fit a column. That's a real shift. It keeps the warehouse as the single source of truth instead of forcing teams to maintain a parallel NoSQL system for agent outputs.
Why this matters for us: it means the data layer we're building — the one primos use to track orders, inventory, and payouts — can finally hold the messy JSON that AI agents produce without breaking or forcing a detour into another database.
“Now a query can reach into a field like payload.request[0].amount without writing a ton of JSON functions.”