Backporting C++ Safety
summary
Built BlazingMQ: a large distributed queuing system (seven–eight year codebase processing millions of messages) implemented for C++03 clients. Uses contract programming (bsls_assert_safe macros) to opt into bounds and lifetime checks, custom allocators to detect leaks and quarantine frees, an actor model to avoid shared-state races, sanitizers and Jepsen-style tests for failure injection, and TLA+ to verify leader election. Claims a library-only backport gives substantial safety improvements within C++03 constraints while meeting performance goals; code is published and used in production.
AI-written summary · about
chapters (13)
- 0:00Introduction to talk
- 1:46BlazingMQ overview
- 6:03What is safety in C++
- 14:07Memory safety challenges
- 29:20Use after free solutions
- 36:22Allocator and Miracle Pointer
- 41:18Uninitialized memory and contracts
- 45:51Contract programming in code
- 49:03Type safety and strong types
- 55:43Thread safety and data races
- 1:04:32Safety vs correctness
- 1:07:27Ensuring correctness in code
- 1:16:12Q&A and closing








