Always Be Running - Long Running and Fault Tolerant Java Services
summary
Ocean robots run for months to a year and communicate over Iridium 6×300B every 5min (charged ~$1 per packet), so reliability is engineered not patched: code uses Zulu embedded server VM, avoids timer tasks, puts a catch Throwable backstop at thread tops to prevent scheduled futures from dying, prefers copy‑on‑write listener lists and bounded thread pools, and verifies tests with PIT mutation testing. A watchdog plugin uploaded over Iridium once revived a dead scheduled task; missions have lasted seven months and over 2.5 million miles.
AI-written summary · about
chapters (16)
- 0:00Start
- 3:53Durable Systems
- 4:34A Brief Tragedy
- 6:04What Broke?
- 8:11Fixed Version
- 8:39Why Went Wrong
- 10:34Opinion? Advice? Rules?
- 12:10Throwing Exceptions
- 15:34Uncaught Exceptions
- 23:24Informal Exceptions
- 27:44Checked Exceptions
- 34:50Computation vs Mutation
- 43:57Thread Pools
- 45:48Execution Models
- 47:25Watchdogs
- 50:11Helper Monkey?
related talks
52mBulletproof Java Enterprise Applications for The Hard Production Life
01h 00mBulletproof Java Enterprise applications for the hard production life
35mNo Rocket Scientist Required - Developing +14,000 Message p/second IOT Systems
35mA real world use case with OSGi R7
20mUsing Java for Small IoT Devices
59m5 tips to make your Java apps more awesome. Non-functional Requirements Exemplified
46mAsynchronous Job Processing in Java with JobRunr
51m5 Tips to Make Your Java Apps More Awesome!
