Components should be designed to handle a single task. For example, when building an interface between two systems that requires some message processing, this integration should be made up of at least 3 components:
Source - receive the message from system A.
Filter - apply any filtering or processing on the message.
Destination - send the processed message to system B.
By separating the tasks between 3 components, we are leveraging Separation of Concerns which will help:
Embrace reusability of components. The more simple the task, the more likely you are able to reuse that component for a future interface.
The team understand and manage the components
Quickly locate and troubleshoot errors that may come up