Why Arize built adb
AI observability depends on fast ad-hoc analytics over high-volume generative AI data, fresh events available within seconds, and mass updates when you re-run evaluations on historical traces. Traditional databases weren’t built for this combination at petabyte scale, so Arize built adb to serve all of it at once. The guiding principle is an anti-monolith approach: instead of one all-in-one system, adb is a universal data layer built on open standard formats (Parquet, Iceberg), with lightweight, stateless query engines sitting on top of shared object storage. Data Fabric can continuously sync your traces, evaluations, and annotations to your own cloud warehouse, like BigQuery or Snowflake, in open Iceberg format. adb’s architecture is shaped around five goals:- Core data asset. Keep generative outputs in open formats (Parquet, Iceberg) so they’re accessible to any tool, with no vendor lock-in.
- Stateless, elastic compute. Separate storage from compute so query engines can scale and move without relocating or losing data.
- Sub-second performance. Maintain spreadsheet-like responsiveness even at billion-row scale.
- Continuous real-time updates. Stream fresh events in without blocking historical backfills, and capture evaluations and annotations on data of any age.
- Internet-scale durability. Reliably process billions of spans and traces per month across hundreds of customers.
Architecture
adb’s architecture follows from the decision to separate storage from compute: data lives in object storage as open, columnar files, while the query engines that read it are lightweight and stateless. Because the engines hold no permanent state, they can scale up under load, scale down when idle, and move between machines without relocating or losing data. Data reaches storage along one of two write paths, depending on how it arrives:- Streaming path, for live events. Incoming events land in the query layer (the tier that also serves historical reads), where they’re materialized as in-memory Arrow data so they’re queryable immediately.
- Batch path, for large backfills. Large uploads bypass the query layer entirely and write Parquet/Arrow files directly to blob storage. An indexing service then generates the metadata needed so those files are queryable through the same interface as streamed data.
Real-time ingestion
adb ingests both large file uploads and continuous streams of trace events at scale, terabytes a day across billions of spans. For streaming, a record becomes queryable from the moment it arrives in memory rather than after a scheduled batch job runs. Incoming records accumulate in memory, where they immediately become available to queries. Periodically they’re flushed to local disk, and from there synchronized to cloud blob storage for durable, long-term storage.Delivery guarantees
adb offers two levels of guarantee for streamed records:- At-least-once delivery. A record is acknowledged only after it has been durably persisted, and if a client doesn’t receive an acknowledgment it retries, so no record is silently lost.
- Effectively-once ingest. adb keeps track of what it has already saved, so if part of the pipeline retries after a failure, it resumes from the last saved record instead of writing the same record twice.
Performance & benchmarks
The benchmarks measure the operations users experience most directly: how fast data uploads, how quickly a trace goes from ingested to visible, and search latency over large datasets. Tests were run over a 150 MB/s down / 150 MB/s up connection; full-text search was measured as regexp search over datasets of 5M and 10M spans, each span carrying a ~25 KB chat-text string. Theadb (P50) column is the median database timing, Arize AX Platform is the end-to-end time a user sees (database plus application), and Platform A, Platform B, and Platform C are other observability platforms run through the same tests.
Cells marked Not supported, Rate limit exceeded, or Crashed reflect limits the competing platform hit at that scale during testing. N/A means the case wasn’t run for that platform.
Self-hosting
If you self-host Arize AX, adb runs as the “ArizeDB” component in your cluster. See the self-hosting prerequisites for its node-pool and storage requirements.Learn more
adb concepts
The concept docs cover adb’s architecture, real-time ingestion, and performance in more depth.
Data Fabric
Continuously sync your traces, evaluations, and annotations to your own cloud warehouse in open Iceberg format.