Core concepts

Atomio has a number of core concepts and features that are important to understand how to use Atomio and its APIs.

Feeds

Atomio is a syndication server that hosts feeds, and can host zero or more feeds. Unlike Ontoserver that has a single syndication feed that represents the content of the Ontoserver instance, Atomio is designed to host multiple feeds each containing different collections of content for different purposes.

Each of these feeds represents an Atom syndication feed which has basic metadata about the feed (name, identifier, description etc), and can contain zero or more entries.

Entries

Entries are included in feeds, each representing a single logical content item. Entries provide metadata for the content item, including information such as a title, category (type of content), description, creation date and last modified time, copyright etc.

Each entry has one or more associated artefact, which allows for multiple representations of the same content item in different formats. For example an entry might exist for a FHIR CodeSystem which has two artefacts, one being the JSON format of the CodeSystem and the other the XML format.

Artefacts

Artefacts are the actual data for entries, essentially files. Atomio stores these artefacts along with additional metadata including SHA256 hashes and lengths for validation.

Aliases

Each feed has a name which is used as its identifier and used to access the feed through Atomio’s API, including the syndication format for the feed.

For a feed named “release-candidate-27”, its syndication feed format can be accessed at

https://some.atomio.server/feed/release-candidate-27/syndication.xml

This is the fixed name and location of this syndication feed.

Aliases can also be created in Atomio to provide a logical, movable URL to access syndication feeds. Aliases also have a name and persist the name of the feed it is currently an alias for.

For example, an alias called “production” can be created in Atomio and set to alias the “release-candidate-27” feed. This makes the following URL available

https://some.atomio.server/alias/production/syndication.xml

Which when requested will return the content of the “release-candidate-27” feed. The “production” alias can then be updated to alias the “release-candidate-35” feed, at which point requests to the URL

https://some.atomio.server/alias/production/syndication.xml

Will return the content of the “release-candidate-35” feed.

Ontoserver can be configured to get its content from an Atomio alias feed URL, which allows administrators to update which underlying feed is associated with that alias without having to reconfigure Ontoserver. This is typically used for the use case alluded to in the above example – to roll Ontoserver instances onto (or back to) well known release candidate feeds without having to reconfigure the Ontoserver instances to achieve that.