Debugging applications in remote environments is painful, as you can’t set breakpoints to remote applications as you would do in your local environment. The main motivation behind Thundra Sidekick is to help developers alleviate the suffering due to lack of tooling around debugging for remote development on distributed environments.
Thundra Sidekick removes the debugging burdens and enables developers to put tracepoints to the code which don’t break the execution but take snapshots. Then takes it to the next level by displaying the distributed trace of the modern applications. Thundra Sidekick is helpful when developers work on remote environments and debug their code while they build.
Let’s take a look at how it works:
Tracepoint is a non-breaking breakpoint integrated with Thundra's distributed technology. We call it tracepoints instead of breakpoints as we integrate them with our distributed tracing technology. Developers can define conditions for tracepoints using the variables around tracepoints and filter the only necessary information while defining the tracepoint. For example; you can configure it to take snapshots only when a specific condition occurs.
Take the snapshot
When the code execution hits the tracepoint, Thundra Sidekick takes a snapshot of the variables and the call stack. It’s like the code pauses in the breakpoint but it actually doesn't. All valuable data is retrieved with negligible(less than 1ms) performance overhead.
End-to-end Visibility with Distributed Tracing
Thundra Sidekick connects the several tracepoints in the same distributed transaction. Developers can navigate between the snapshots of the same transaction and achieve end-to-end visibility for debugging.
Fix & Hot Reload
This comes with a “Coming Soon” tag. Thundra Sidekick will allow developers to reload the code in remote environments without re-deploying the application. We already saved lots of hours with this and very excited about how it could help other developers.