  Causality in distributed systems is a concept that has long been explored and
numerous approaches have been made to use causality as a way to trace
distributed system execution. Traditional approaches usually used system
profiling and newer approaches profiled clocks of systems to detect failures
and construct timelines that caused those failures. Since the advent of logical
clocks, these profiles have become more and more accurate with ways to
characterize concurrency and distributions, with accurate diagrams for message
passing. Vector clocks addressed the shortcomings of using traditional logical
clocks, by storing information about other processes in the system as well.
Hybrid vector clocks are a novel approach to this concept where clocks need not
store all the process information. Rather, we store information of processes
within an acceptable skew of the focused process. This gives us an efficient
way of profiling with substantially reduced costs to the system. Building on
this idea, we propose the idea of building causal traces using information
generated from the hybrid vector clock. The hybrid vector clock would provide
us with a strong sense of concurrency and distribution, and we theorize that
all the information generated from the clock is sufficient to develop a causal
trace for debugging. We post-process and parse the clocks generated from an
execution trace to develop a swimlane on a web interface, that traces the
points of failure of a distributed system. We also provide an API to reuse this
concept for any generic distributed system framework.
