Transactional system that defines a set of primitive and composable concepts. It is inspired by Finite State Grammars.
Finite State Transactional Grammar. I don't know if I made up this term, so I won't claim to have invented this, but I'm running with it. What is sketched here is a transactional system inspired by finite state machines, finite state grammars, rule engines, map-reduce algorithms, functional programming (namely Clojure and LISP), business intelligence, and the rubygem Hero.
Each modular application is a hub. A hub is a center of activity for its dedicated formula. It is responsible for verifying the integrity of inputs-outputs and compliance of its transactions.
Any step or set of steps defined by either business and technical needs.
Algorithms, processes, change of state, events.
Each hub has at least one node. Each node is responsible for returning a Boolean/Binary value to determine whether or not its dedicated operation executed sucessfully.
If a node successfully executed then all transactional data is complete and sound.
Integrity = complete + sound
All data relevant to a transaction exists.
All data within a transaction is correct.
Transactional system is considered stable if the integrity returns true.
Composables are composed of the outputs of allowed primitives (in some cases a composable can be composed of themselves).
- Hub (hub, node) [A Hub can be composed of at least one
huband/or onenode] - Node (formula) [A Node can be composed of at least one
formula] - Formula (formula, step) [A Formula can be composed of at least one
stepand/or oneformula] - Step (step) [A Step can be composed of at least one
step] - Integrity (complete + sound) [Integrity is composed of at least one
completeAND onesound] - Stable (integrity) [Stable is composed of at least one
integrity]
- Step (from the transaction system's point of view a step is primitive)
- Complete
- Sound
A Boolean is a True/False, a State is any other kind of value.
- Hub returns [State (accepts from Formula, no change), Boolean (accepts from Formula)]
- Formula returns [State (accepts from Step, no change), Boolean (accepts from Step)]
- Step returns [State (set values), Boolean (set values for sound and complete)]
- Node returns [Boolean (accept from Step, pass to Integrity), State (passes State from Step to Formula, no change)]
- Integrity returns [Boolean (accepts from Node(sound(true/false),complete(true/false)))]
- Stable returns [Boolean (accepts from Integrity(true/false))]
- Step returns [State (set state, only piece that can change state), Boolean]
- Complete returns [Boolean]
- Sound returns [Boolean]
In other words, only Steps are allowed to change and persist state, while Formulas manage and co-ordinate Steps. Since Formulas are composed of Steps, and Hubs compose of Formulas the States are accessible by, and percolate up to, the heirarchy.