We propose a novel approach to service choreography through a typed process calculus that features an event notification paradigm for coordinating distributed components (e.g., services). Basically, the type system expresses coordination policies for handling the events spawn in a network so that distributed components react to events when the type of their public interface is ”compatible” with (the policies expressed by) the types of signals. Remarkably, the type system can naturally handle multi-party sessions, as shown in the formalisation of the OpenID protocol which requires multi-party sessions for handling user identities