Modularity introduced Stream Branching (formerly Arbitrary Branching) that is used for both module definitions and RPM packages that are part of modules.
Module definitions are stored in the
/modules namespace and only consist of a modulemd file that defines the module itself.
Each module has a repository with branches corresponding to different streams. The repository and branch naming map to the module ID:
Repository name → module name
Branch name → stream name
Commit timestamp → module version