  We propose TROD, a novel transaction-oriented framework for debugging modern
distributed web applications and online services. Our critical insight is that
if applications store all state in databases and only access state
transactionally, TROD can use lightweight always-on tracing to track the
history of application state changes and data provenance, and then leverage the
captured traces and transaction logs to faithfully replay or even test modified
code retroactively on any past event. We demonstrate how TROD can simplify
programming and debugging in production applications, list several research
challenges and directions, and encourage the database and systems communities
to drastically rethink the synergy between the way people develop and debug
applications.
