Protocol Safety, Communication Correctness, Type-driven Development, Concurrency