Govern
Rules your data has to follow.
Data contracts set the rules: required fields, types and freshness. You choose whether a broken rule warns or blocks. Triggers run every scheduled job and event-driven run from one scheduler.
Contracts
Say what good data looks like.
Attach a contract to a spreadsheet or a file. Mark which fields are required, what type each one should be, and how old the data is allowed to get.
Orders contract
order_id · required · textschematotal · required · numberschemaregion · textschemaupdated within 6 hoursfreshnessEnforcement
Warn about it, or stop it at the door.
Warn logs the violation and lets the change through. Block stops the write or the run. Spark contracts warn; Ray and up can block.
region empty on 3 rowsloggedtotal = "N/A" on row 418write stoppedChecks
Checked on a schedule. Recorded every time.
Contracts are checked on a schedule, from daily on Spark to every minute on Radiance. Violations are tracked with their status. Coverage reports from Beam show which sources have no contract yet.
- Violation notifications in-app on Spark, by email from Ray
- Schema drift detection and data quality scoring from Aurora
- Custom contract rule types from Aurora
Coverage
Triggers
One scheduler for everything.
Cron or interval schedules with time zones, or platform events. A trigger can run a contract check, or start Juno on its own with an instruction, a list of tools it may use and a cap on how many tool calls it can make.
- Shortest interval from 1 hour on Spark down to 1 minute on Aurora
- Unattended Juno runs from Ray: 5 a day, up to 500 on Radiance
- Anything destructive still waits for a person
0 7 * * 1-5 · America/Chicagocheck Orderswebhook receivedJuno run15 minutescheck Refunds