https://chuckconway.com/posts/understanding-time-discrepancies-in-distributed-systems/