Skip to content

Catalog schema

The conference catalog is bundled at src/main/resources/catalog/uberconf-sample-catalog.json and loaded once by CatalogService into a SessionCatalog. The data is synthetic and fictional — no real UberConf schedule or real abstracts. The catalog contains deliberate slot overlaps so the noDoubleBooking invariant (see actions, conditions, and goals) has clashes to catch.

Top-level shape

{
  "sessions": [ /* Session objects */ ],
  "speakers": [ /* Speaker objects */ ]
}
Key JSON type Maps to
sessions array List<Session>
speakers array List<Speaker>

Session object

Field JSON type Example
id string "PC-01"
title string "Kubernetes Without the Tears"
abstractText string "Kubernetes Without the Tears: a calm tour of the failure modes…"
speakers array of string ["Dr. Priya Venkatasubramanian"]
track string "Platform & Cloud"
room string "Cedar"
day string (ISO date) "2026-09-15"
startTime string "09:00"
endTime string "10:15"
level string "Intermediate"
tags array of string ["kubernetes", "platform-engineering", "operations"]

The slot key used for clash detection is day + " " + startTime (e.g. 2026-09-15 09:00).

Speaker object

Field JSON type Example
name string "Dr. Priya Venkatasubramanian"
bio string "Distributed systems researcher turned platform lead…"
topics array of string ["kubernetes", "consensus", "platform-engineering"]

Counts

Property Value
Sessions 35
Speakers 12
Tracks 4 — AI & Data, Architecture & DevEx, Platform & Cloud, Security & Resilience
Days 3 — 2026-09-15, 2026-09-16, 2026-09-17
Slots with more than one session (overlaps) 9