Component
Definition
A component is a logically cohesive part of one system with a defined responsibility, behavior, and change boundary.
Boundaries
A component is worth identifying when it is independently developed, deployed, scaled, replaced, or has separate contracts. A source-code module need not be an architecture component. Every component has one owning system.
Minimum characteristics
- purpose;
- owning system;
- component kind;
- lifecycle state;
- responsible team.
Relationships
A component belongs to a system, exposes interfaces, participates in integrations, and has one or more deployments.
Example
CMP-CASE-API is the CRM component managing the case lifecycle and deployed independently in several environments.
Common mistakes
- modeling every library and class;
- assigning a component to several systems;
- creating production and test components instead of deployments.