Some phonologically significant generalizations result from processes, often formalized as rewrite rules, while others result from interactions among independently motivated processes, often formalized in terms of serial ordering. We adopt these general formalizations of processes and interactions to address two questions. One is the interaction question: what are all the possible forms of interaction between two processes? The other is the opacity question: what makes an interactions between two processes opaque? We show that these questions are best addressed with a rigorous algebraic formalization of processes and their pairwise interactions, describing the complete formal typology of process interactions and identifying the formal properties of those interactions that lead to different types of opacity.