Marshalling is where Windows translates the communication between applications and/or components talking across process boundaries. Like using a translator in real life, these conversations can move very slowly. In-process components don’t need to take this extra step and can be called from the client as if they were part of the client itself. Although it might seem like almost all of the following items favor out-of-process components, this speed advantage is huge and should weigh heavily in your in-process vs. out-of-process decisions.