Fractured Processes: Adaptive, Fine-Grained Process Abstractions
summary
Fracture breaks C applications into logical modules mapped to lightweight “fractured mini processes” so a single buggy component can be run under valgrind on one module, restarted with RX‑style environments, replicated or sampled. Interaction uses shared‑memory queues, request logging and replay, and min-cut partitioning computed from observed module traffic. Case studies include a 300k‑LOC chat client, a web server and two FUSE filesystems; implementation requires 57 pointer‑parameter annotations across 104 modules and yields near‑native single‑process performance while enabling low‑overhead selective isolation.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 0:16Process Abstractions
- 0:49Fault Tolerance
- 2:43Solution
- 3:59Outline
- 4:35Example
- 5:11Memory Leaks
- 6:50Buffer Overflows
- 7:57Application Fracture
- 9:25Runtime Configuration
- 15:02Sampling
- 16:03Program annotations
- 16:29Pointer parameters
- 17:39Module capabilities
- 18:15How does it work
- 19:37Evaluation
- 21:36Performance
- 23:51Conclusion
- 24:28Questions
related talks
51mMicroProcess Architectures: Planning for Change, & Retaining Flexibility
48mUnbreakable by Design: The Secret Tech of Antifragile Software
48mExperiences scaling a modular monolith to microservices using the 4+1 views
37mModern Abstractions and the Web, and avoiding Pitfalls because Life is short
42mBounded Context — How to Modularize a System in a Few Steps
32mA Fork to Reckon With: Minimizing Friction When Adopting OSS
20mScalable and Accurate Application-Level Crash-Consistency Testing(…)
45mMonolith to Microservices: Modularizing Fineract 1.x
