Skip to main content

Core Concepts

As a quick reference and first overview, here a list of Sidex's core concepts each with a short description:

Bundle
A bundle is a flat collection of schemas evolving together. A Sidex bundle defines a data model, an API, or both. Every bundle has its own directory with a bundle manifest sidex.toml and a schemas directory for schemas.
Schema
A schema groups together multiple type and/or service definitions under a common namespace within a bundle. Schemas are used to organize such definitions into groups of related domain or functionality. Each schema is defined in a file schema_name.sidex within in the schemas directory of its bundle where schema_name is the name of the schema.
Type Definition
A type definition defines a data type constraining the form data may take. Sidex's type system supports a variety of different data types and even allows you to define your own primitives. For further details, read the section about data types.
Service Definition
A service definition defines a service specifying methods which can be invoked with certain arguments and return a result. Service definitions are at the core of API definitions. For further details, read the section about services.
Language Mapping
A language mapping defines how Sidex's data types and services are mapped to native types of a programming language. Language mappings are usually format-independent, i.e., independent of any interchange format.
Format Mapping
A format mapping defines how Sidex's data types are mapped to the primitives and structures of an interchange format. Format mappings are usually language-independent, i.e., independent of any programming language.