Guiding Principles
The architectural framework, including its components and API specifications, is based on the following common design principles.
Declarative API
The API design is solely dedicated to a declarative model, with no support for imperative requests. REST is exclusively used for managing declaration resources.
The declarative API model of ApeiroRA is inherited from the Kubernetes ecosystem, known as the Kubernetes Resource Model
Unlike traditional REST designs, the execution of real-world actions (drift control) is handled by "controllers" or "operators" that work on top of a REST model. The REST model is only used to store and manipulate the declarative intents, rather than executing actions. The reconciliation design manages the drift between the desired and real state of the world, which has been proven to enable reliable and resilient software environments.
The service orchestration environment provides a structured object space
Decoupling
Decoupling and separation of concerns is an important design criterion for the components of the reference architecture.
All components and layers should be directly usable without needing the complete framework or service orchestration environment, meaning that components can be hardwired if desired.
Service providers
While the overall architecture aims to enable the creation of marketplaces
The architecture will strive to avoid bundling functionality that could be provided by separate components in order to maximize flexibility in composing architectural elements and providing different implementations.