Versioning
Versioning is a central concept to Odin. Components and Service definitions always point to a specific version.
A service definition with concrete version is defined below
{
"name": "MyAuth",
"version": "1.0.0",
"team": "tech",
"components": [
{
"type": "application",
"name": "my-auth",
"version": "1.0.0"
},
{
"type": "cassandra",
"name": "foo-cassandra",
"version": "1.1.0"
},
{
"type": "aerospike",
"name": "foo-aerospike",
"version": "1.2.0"
}
]
}Concrete versioned service definitions or component artefacts are treated as immutable objects. For development purpose SNAPSHOT keyword can be added in version.
Service definition or component artefacts with SNAPSHOT in the version are treated as mutable.
{
"name": "MyAuth",
"version": "1.0.0-SNAPSHOT",
"team": "tech",
"components": [
{
"type": "application",
"name": "my-auth",
"version": "1.0.0"
},
{
"type": "cassandra",
"name": "foo-cassandra",
"version": "1.1.0"
},
{
"type": "aerospike",
"name": "foo-aerospike",
"version": "1.2.0"
}
]
}Below diagram explains the SDLC workflow with Odin

PreviousKnow Your Service DefinitionNextClearing the Confusion: A Simplified Guide to Artifact, Component, and Service Versions
Last updated