Traces in open tracing are defined by their Spans. Edges between Spans are called references.
A span has an operation name, start timestamp, finish time stamp. Each span has zero or more key:value Span tags, with each key as a string.
A span may reference zero or more other SpanContexts that are causally related.
Two types of references: 1. ChildOf 2. FollowsFrom
Both model direct relationships between childSpan and parentSpan.
Tracer interface creates Spans understands how to Inject and Extract them across process boundaries.
Operation name: string that uniquely identifies a class of
SpanContext into a carrier
SpanContext from a carrier
SpanContext is immutable, and semantically the caller should be able to ite