Welcome
Akala is a framework that aims to provide kind of a mix between angular, redux, uci and pm2.
It is composed of multiple layers
- jsonrpc: base communication layer (obviously other protocols can be used, but this one is the firstclass choice).
- core: base layer containing all necessary implementations for subsequent layers: modules, dependency injection, 2way data binding, …
- commands: base layer to implement a redux-like system.
- configuration: on top of commands, sits the configuration layer. It has various way to control configuration content, so could be used without commands, but having commands implementation makes it depending on commands layer.
- storage: storage layer is my vision of an ORM in javascript. (currently not many providers are supported, but it might grow in the future).
- cli: CLI helpers to build your own CLI or enrich akala.
Up to here, all previously mentioned layers are usable from either client or server side (understand browser or nodejs). Then comes the platform specific layers.
- pm: process manager. It says it all: this layer is a docker like system which you can control using the commandslayer. Each process can be started with its own arguments (like a docker container).
- server: node layer. It basically supports server side command triggers like http (This permits to have commands being served by http).
- client: browser layer heavily inspired from angularjs and angular from a concept perspective, but with a radically different usage approach.
Finally comes the helpers to help you leverage this big framework.
%%{ init: { 'flowchart': { 'curve': 'linear' } } }%%
flowchart TB
authentication ---> commands & core
automate ---> cli & commands & config & core & cron & json-rpc-ws & pm & pubsub & server
aws-lambda ---> commands & core
cli ---> core
client ---> commands & core
commands ---> cli & core & json-rpc-ws
config ---> commands & core
gateway ---> cli & core & json-rpc-ws
json-rpc-ws ---> core
jwt ---> core
pm ---> cli & commands & config & core & json-rpc-ws
pubsub ---> commands & core & pm
semantic-release ---> cli & commands
server ---> commands & core & json-rpc-ws & pm
sidecar ---> cli & commands & config & core & pm & storage
storage ---> core
vite ---> client & commands & core & json-rpc-ws
web-ui ---> client & commands & core
authentication -.-> jwt & pm & server & storage
click authentication "_authentication" "Go to authentication documentation"
click automate-yamlloader "_automate-yamlloader" "Go to automate-yamlloader documentation"
click automate "_automate" "Go to automate documentation"
click aws-lambda "_aws-lambda" "Go to aws-lambda documentation"
click cli "_cli" "Go to cli documentation"
click client "_client" "Go to client documentation"
click commands "_commands" "Go to commands documentation"
click config "_config" "Go to config documentation"
click core "_core" "Go to core documentation"
click cron "_cron" "Go to cron documentation"
click gateway "_gateway" "Go to gateway documentation"
click json-rpc-ws "_jsonrpc" "Go to json-rpc-ws documentation"
click jwt "_jwt" "Go to jwt documentation"
click pm "_pm" "Go to pm documentation"
click protocol-parser "_protocol-parser" "Go to protocol-parser documentation"
click pubsub "_pubsub" "Go to pubsub documentation"
click semantic-release "_semantic-release" "Go to semantic-release documentation"
click server "_server" "Go to server documentation"
click sidecar "_sidecar" "Go to sidecar documentation"
click storage "_storage" "Go to storage documentation"
click storage-mongodb "_storage-mongodb" "Go to storage-mongodb documentation"
click tacl "_tacl" "Go to tacl documentation"
click vite "_vite" "Go to vite documentation"
click web-ui "_web-ui" "Go to web-ui documentation"