{"components":[{"description":"Public GET /kv, dashboard reads, private allowlisted reads.","id":"reads","name":"Reads","status":"operational"},{"description":"PUT/DELETE and Connect write RPCs.","id":"writes","name":"Writes","status":"operational"},{"description":"Control plane and KV API. Read methods follow Reads; write methods follow Writes.","id":"api","name":"REST / Connect RPC","status":"operational"},{"description":"kv.devh.in console.","id":"dashboard","name":"Dashboard","status":"operational"},{"description":"auth.devh.in session and API tokens.","id":"auth","name":"Authentication","status":"operational"}],"full_outages":0,"graph":{"count":1255,"from":1685577600,"last_90_days":[{"reads":100.0,"status":"operational","t":1786233600,"writes":100.0},{"reads":100.0,"status":"operational","t":1786320000,"writes":100.0},{"reads":100.0,"status":"operational","t":1786406400,"writes":100.0},{"reads":100.0,"status":"operational","t":1786492800,"writes":100.0},{"reads":100.0,"status":"operational","t":1786579200,"writes":100.0},{"reads":100.0,"status":"operational","t":1786665600,"writes":100.0},{"reads":100.0,"status":"operational","t":1786752000,"writes":100.0},{"reads":100.0,"status":"operational","t":1786838400,"writes":100.0},{"reads":100.0,"status":"operational","t":1786924800,"writes":100.0},{"reads":100.0,"status":"operational","t":1787011200,"writes":100.0},{"reads":100.0,"status":"operational","t":1787097600,"writes":100.0},{"reads":100.0,"status":"operational","t":1787184000,"writes":100.0},{"reads":100.0,"status":"operational","t":1787270400,"writes":100.0},{"reads":100.0,"status":"operational","t":1787356800,"writes":100.0},{"reads":100.0,"status":"operational","t":1787443200,"writes":100.0},{"reads":100.0,"status":"operational","t":1787529600,"writes":100.0},{"reads":100.0,"status":"operational","t":1787616000,"writes":100.0},{"reads":100.0,"status":"operational","t":1787702400,"writes":100.0},{"reads":100.0,"status":"operational","t":1787788800,"writes":100.0},{"reads":100.0,"status":"operational","t":1787875200,"writes":100.0},{"reads":100.0,"status":"operational","t":1787961600,"writes":100.0},{"reads":100.0,"status":"operational","t":1788048000,"writes":100.0},{"reads":100.0,"status":"operational","t":1788134400,"writes":100.0},{"reads":100.0,"status":"operational","t":1788220800,"writes":100.0},{"reads":100.0,"status":"operational","t":1788307200,"writes":100.0},{"reads":100.0,"status":"operational","t":1788393600,"writes":100.0},{"reads":100.0,"status":"operational","t":1788480000,"writes":100.0},{"reads":100.0,"status":"operational","t":1788566400,"writes":100.0},{"reads":100.0,"status":"operational","t":1788652800,"writes":100.0},{"reads":100.0,"status":"operational","t":1788739200,"writes":100.0},{"reads":100.0,"status":"operational","t":1788825600,"writes":100.0},{"reads":100.0,"status":"operational","t":1788912000,"writes":100.0},{"reads":100.0,"status":"operational","t":1788998400,"writes":100.0},{"reads":100.0,"status":"operational","t":1789084800,"writes":100.0},{"reads":100.0,"status":"operational","t":1789171200,"writes":100.0},{"reads":100.0,"status":"operational","t":1789257600,"writes":100.0},{"reads":100.0,"status":"operational","t":1789344000,"writes":100.0},{"reads":100.0,"status":"operational","t":1789430400,"writes":100.0},{"reads":100.0,"status":"operational","t":1789516800,"writes":100.0},{"reads":100.0,"status":"operational","t":1789603200,"writes":100.0},{"reads":100.0,"status":"operational","t":1789689600,"writes":100.0},{"reads":100.0,"status":"operational","t":1789776000,"writes":100.0},{"reads":100.0,"status":"operational","t":1789862400,"writes":100.0},{"reads":100.0,"status":"operational","t":1789948800,"writes":100.0},{"reads":100.0,"status":"operational","t":1790035200,"writes":100.0},{"reads":100.0,"status":"operational","t":1790121600,"writes":100.0},{"reads":100.0,"status":"operational","t":1790208000,"writes":100.0},{"reads":100.0,"status":"operational","t":1790294400,"writes":100.0},{"reads":100.0,"status":"operational","t":1790380800,"writes":100.0},{"reads":100.0,"status":"operational","t":1790467200,"writes":100.0},{"reads":100.0,"status":"operational","t":1790553600,"writes":100.0},{"reads":100.0,"status":"operational","t":1790640000,"writes":100.0},{"reads":100.0,"status":"operational","t":1790726400,"writes":100.0},{"reads":100.0,"status":"operational","t":1790812800,"writes":100.0},{"reads":100.0,"status":"operational","t":1790899200,"writes":100.0},{"reads":100.0,"status":"operational","t":1790985600,"writes":100.0},{"reads":100.0,"status":"operational","t":1791072000,"writes":100.0},{"reads":100.0,"status":"operational","t":1791158400,"writes":100.0},{"reads":100.0,"status":"operational","t":1791244800,"writes":100.0},{"reads":100.0,"status":"operational","t":1791331200,"writes":100.0},{"reads":100.0,"status":"operational","t":1791417600,"writes":100.0},{"reads":100.0,"status":"operational","t":1791504000,"writes":100.0},{"reads":100.0,"status":"operational","t":1791590400,"writes":100.0},{"reads":100.0,"status":"operational","t":1791676800,"writes":100.0},{"reads":100.0,"status":"operational","t":1791763200,"writes":100.0},{"reads":100.0,"status":"operational","t":1791849600,"writes":100.0},{"reads":100.0,"status":"operational","t":1791936000,"writes":100.0},{"reads":100.0,"status":"operational","t":1792022400,"writes":100.0},{"reads":100.0,"status":"operational","t":1792108800,"writes":100.0},{"reads":100.0,"status":"operational","t":1792195200,"writes":100.0},{"reads":100.0,"status":"operational","t":1792281600,"writes":100.0},{"reads":100.0,"status":"operational","t":1792368000,"writes":100.0},{"reads":100.0,"status":"operational","t":1792454400,"writes":100.0},{"reads":100.0,"status":"operational","t":1792540800,"writes":100.0},{"reads":100.0,"status":"operational","t":1792627200,"writes":100.0},{"reads":100.0,"status":"operational","t":1792713600,"writes":100.0},{"reads":100.0,"status":"operational","t":1792800000,"writes":100.0},{"reads":100.0,"status":"operational","t":1792886400,"writes":100.0},{"reads":100.0,"status":"operational","t":1792972800,"writes":100.0},{"reads":100.0,"status":"operational","t":1793059200,"writes":100.0},{"reads":100.0,"status":"operational","t":1793145600,"writes":100.0},{"reads":100.0,"status":"operational","t":1793232000,"writes":100.0},{"reads":100.0,"status":"operational","t":1793318400,"writes":100.0},{"reads":100.0,"status":"operational","t":1793404800,"writes":100.0},{"reads":100.0,"status":"operational","t":1793491200,"writes":100.0},{"reads":100.0,"status":"operational","t":1793577600,"writes":100.0},{"reads":100.0,"status":"operational","t":1793664000,"writes":100.0},{"reads":100.0,"status":"operational","t":1793750400,"writes":100.0},{"reads":100.0,"status":"operational","t":1793836800,"writes":100.0},{"reads":100.0,"status":"operational","t":1793923200,"writes":100.0}],"markers":[{"incident_id":"inc_20241224_optimization","reads_pct":100.0,"status":"maintenance","t":1734998400,"writes_pct":99.51},{"incident_id":"inc_20260705_migration","reads_pct":100.0,"status":"maintenance","t":1783209600,"writes_pct":95.69}],"reads":{"default":100.0,"overrides":{}},"status":{"default":"operational","overrides":[{"status":"maintenance","t":1734998400},{"status":"maintenance","t":1783209600}]},"step":86400,"to":1793923200,"unit":"percent","writes":{"default":100.0,"overrides":[{"pct":99.51,"t":1734998400},{"pct":95.69,"t":1783209600}]}},"incidents":[{"actual_end":1735060020,"actual_start":1735059600,"components":{"api_reads":"operational","auth":"operational","dashboard":"operational","reads":"operational","writes":"operational"},"data_loss":false,"duration_seconds":420,"finished_early_seconds":1380,"full_outage":false,"id":"inc_20241224_optimization","impact":"minor","impact_scope":["writes"],"informed_at":1734454800,"kind":"optimization","not_affected":["reads","public_reads","private_reads","dashboard","auth","tokens"],"notice_days":7,"notice_seconds":604800,"planned":true,"scheduled_end":1735061400,"scheduled_start":1735059600,"scheduled_window_seconds":1800,"status":"resolved","summary":"Writes paused 420s (30m advertised). Reads, dashboard, and auth stayed up. Users were notified 7 days prior.","title":"Scheduled maintenance — server optimization","type":"scheduled_maintenance","updates":[{"at":1734454800,"message":"We will take a 30-minute write window on 24 Dec 2024 17:00–17:30 UTC to optimize the KV write path (compaction, file layout, allocator tuning). Public reads, private/allowlisted reads, dashboard, auth, and token minting stay up. PUT/DELETE and Connect write RPCs may return 503 or stall until the window closes. Posted 7 days in advance.","status":"scheduled"},{"at":1735059600,"message":"Write path paused at 17:00:00 UTC. Incoming PUTs and DELETEs are rejected with 503 (failed_precondition: scheduled maintenance). GET /kv, GET /api/apps/{id}/kv, scans, dashboard, and auth are serving normally. Optimization job started.","status":"in_progress"},{"at":1735059880,"message":"Compaction on per-app redb files finished. Rewarming write handles. Reads still unaffected. Elapsed 4 minutes of a 30-minute window.","status":"in_progress"},{"at":1735060020,"message":"Write path restored at 17:07:00 UTC (7 minutes, 23 minutes under the advertised window). First successful write after resume: 17:07:02 UTC. No data loss. No read errors during the window. Residual write queue: 0.","status":"monitoring"},{"at":1735060080,"message":"Incident closed. Writes healthy. Post-check: put/get roundtrip, scan, and webhook dispatch all green. No customer data repair required.","status":"resolved"}]},{"actual_end":1783281720,"actual_start":1783278000,"components":{"api_reads":"operational","auth":"operational","dashboard":"operational","reads":"operational","writes":"operational"},"data_loss":false,"duration_seconds":3720,"finished_early_seconds":3480,"full_outage":false,"id":"inc_20260705_migration","impact":"minor","impact_scope":["writes"],"informed_at":1782673200,"kind":"migration","not_affected":["reads","public_reads","private_reads","dashboard","auth","tokens"],"notice_days":7,"notice_seconds":604800,"planned":true,"scheduled_end":1783285200,"scheduled_start":1783278000,"scheduled_window_seconds":7200,"status":"resolved","summary":"Writes paused 3720s (120m advertised). Reads, dashboard, and auth stayed up. Users were notified 7 days prior.","title":"Scheduled maintenance — server migration","type":"scheduled_maintenance","updates":[{"at":1782673200,"message":"We will migrate the primary KV host on 5 Jul 2026 19:00–21:00 UTC. Writes (PUT/DELETE, Connect writes) will be unavailable during cutover. Public reads, private reads, dashboard, and auth stay on the old host until DNS/volume cutover completes, then flip with no read gap. Posted 7 days in advance.","status":"scheduled"},{"at":1783278000,"message":"Migration started at 19:00:00 UTC. Writes frozen (503 scheduled maintenance). Snapshot of Turso metadata + per-app redb volumes in progress. Reads continue on the source host.","status":"in_progress"},{"at":1783280480,"message":"Volumes copied. Checksums matched. Bringing write sockets up on the destination. Reads still on source. Elapsed 41 minutes of a 120-minute window.","status":"in_progress"},{"at":1783281720,"message":"Writes restored on the destination at 20:02:00 UTC (62 minutes, 58 minutes under the advertised window). Read traffic flipped with the write cutover; overlap was dual-serve, no read 5xx. No data loss. Replication lag at cutover: 0s.","status":"monitoring"},{"at":1783281780,"message":"Incident closed. Source host decommissioned after 24h soak. Writes and reads healthy on the new host. No customer data repair required.","status":"resolved"}]}],"ok":true,"since":1685577600,"status":"operational","status_label":"All systems operational","timezone":"UTC","upcoming":[],"updated_at":1793960449,"uptime":{"days":1255,"note":"Overall is 100%: we have never taken a full outage. Writes-only maintenance is excluded from overall and counted in writes_pct.","overall_pct":100.0,"reads_pct":100.0,"writes_pct":99.996}}