Temporal Reachability

Discover who can reach whom through time-respecting paths

Temporal reachability analyzes which nodes can reach which other nodes through paths that respect temporal ordering - edges must be traversed in chronological order.

What It Computes

From a source node and starting time, finds all nodes reachable via temporal paths where each edge timestamp is >= the previous edge's timestamp.

Key insight: Temporal paths reveal causality - if A can reach B temporally, A's state could have influenced B.

When to Use It

✅ Cybersecurity

Trace attack chains and lateral movement paths

✅ Epidemiology

Model disease/information spread through contact networks

✅ Supply Chain

Identify disruption propagation and dependencies

✅ Social Analysis

Track how information/influence flows through networks

Parameters

ParameterTypeDefaultDescription
start_timeint0Time to start the temporal walk
seed_nodeslistrequiredSource nodes to start from
max_hopsintNoneMaximum path length (optional)

Tuning advice:

  • start_time: Usually earliest time of interest (e.g., compromise time)
  • max_hops: Limit for performance on large graphs
  • seed_nodes: Known infected/compromised nodes

Performance

Time Complexity: O(V + E) with early termination
Space Complexity: O(V)
Typical Runtime: 0.5-2 seconds for 1M edges

Scales to: 10M+ edges

Example

Output:

Note: Host_E is reachable (A→B→C→E) but only via the temporal path respecting time order.

Real-World Use Cases

Cybersecurity: Lateral Movement

Problem: Attacker compromised one host - what else can they reach?
Solution: Temporal reachability shows attack surface

Supply Chain Disruption

Problem: Supplier failed - which production depends on them?
Solution: Temporal reachability traces impact

Information Spread

Problem: Content went viral - trace propagation path
Solution: Find all users reached from initial posters

Temporal vs Static Reachability

Static reachability: A and E are connected (path exists ignoring time)
Temporal reachability: A can reach E only if path respects time ordering

Example where they differ:

  • Static: A can reach C (path A→B→C exists)
  • Temporal: A CANNOT reach C (would require going backwards in time)

Why it matters: Temporal reachability reveals true causality and influence paths

Performance Tips

  1. Limit max_hops for large graphs
  2. Use time windows to focus on recent activity
  3. Multiple seeds for efficiency vs running multiple queries
  4. Early termination: Algorithm stops when no new nodes found

See Also