Each component keeps its own tag timeline; the release pipeline turns a tag into an immutable, individually-versioned artifact.