UNPKG

2.76 kBMarkdownView Raw
1# What is Axiom?
2
3Axiom is a tool for standardizing the technology decisions of your organization, in a decoupled, modular way. This lets you focus on the development of features, while using standards for file location, project deploys, asset pipelines, etc.
4
5This is a role typically assumed by Frameworks. The goal of Axiom though is to be more of a 'framework toolkit', where you still have the freedom to swap out technologies, and leave out things you don't want.
6
7Features of Axiom include:
8
9* workflow standardization
10* an extensible application kernel
11
12The Axiom infrastructure is separated into four layers:
13
14* Runtime
15* Protocol
16* Plugins
17
18In addition, your application can be separated into:
19
20* Application Configs
21* Application Code
22
23# Runtime
24
25The Runtime is responsible for directing control flow. It interprets the Protocol as a configuration. Based on the Protocol, it calls Plugins/Services at the appropriate locations, at times when it deems appropriate.
26
27Because the Plugins are constrained to a Protocol, and not to a specific Runtime implementation, it is our hope that the Runtime layer can continue to evolve without disrupting the Plugin ecosystem.
28
29# Protocol
30
31The Protocol layer contains a group of Interfaces, each of which describes the lifecycles of workflows and runtimes for the application. The Interfaces are JSON-like configuration files - they may be in memory data structures with require statements or other inderections, but the resulting data structure should be pure data and should not contain any functions.
32
33Protocols must be given a name and version, and a definitive set of Interfaces. This allows Plugins and Runtime modules to identify themselves as being compatible with a given Protocol. The Protocol system allows for many 'Frameworks' to exist within the Axiom ecosystem, ideally leading to a more consistent experience for both application developers and framework developers.
34
35# Plugins
36
37The Plugins bring technologies from the Node.js ecosystem into the Axiom ecosystem. They are the bridge between general technologies and how those technologies should plug into specific workflows and runtimes. A given Plugin can extend many different Interfaces - for instance, installing the Mongoose Plugin you should expect that it
38
39# Design Decisions
40
41Within Axiom, we have selected Decoupled Architecture in place of Generated Boilerplate. This is not an exclusive decision. Our preference towards an architectural approach comes from the belief that this will lead to more inclusive systems which embrace and make use of the myriad of technologies currently available.
42
43# Implementation Decisions
44
45The core of Axiom's interworkings are implemented as communications on a message bus - Postal.js.