Choreographic programming
In computer science, choreographic programming is a programming paradigm for distributed systems, where programs are written as compositions of interactions among multiple concurrent participants.
Deadlock is a common error that can occur in distributed systems. Choreographic programming ensures that deadlock cannot occur in the scope of the choreography by ensuring that every time a message is sent from one party, there is a corresponding receive on the other end.