Coordination languages, such as Reo, have emerged for the specification and implementation of interaction protocols among concurrent entities, manifested as connectors. In this paper, we describe a theoretical justification and a practical proof-of-concept tool for automatically generating partially distributed, partially centralized implementations of Reo connectors. Such implementations have three performance advantages: faster compilation at build time (compared to a purely centralized approach), reduced latency at run time (compared to a purely distributed approach), and improved parallelism at run time (compared to a purely centralized approach). Our theory relies on the definition of a new product operator on constraint automata (Reo's formal semantics), which we use to formally justify distributions of disjoint parts of a coordination scheme over different machines according to several possible motivations (e.g., performance, QoS constraints, privacy, resource availability, and network topology). To exemplify our work, in a case study, we show and explain how a generated connector implementation can be executed.