Skip to main content
Version: 0.7.0

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.