Every System is a Log: Avoiding coordination in distributed applications