Redvant: Difference between revisions
(→Précis) |
|||
Line 13: | Line 13: | ||
and "vant" is just from haskell-servant. | and "vant" is just from haskell-servant. | ||
</div><br><span class=plainlinks> | </div><br><span class=plainlinks> | ||
Use of Apache [https://isis.apache.org <font color=lime>ISIS</font>] or other fat DDD pkg is intended later in | Use of Apache [https://isis.apache.org <font color=lime>ISIS</font>] or other fat DDD pkg is intended later in our overall DDD product line engineering (as 'redvantis'). Some enterprise users may prefer the java basing of ISIS or an ERP core and these future developments are anticipated after the foundational elements are established. | ||
</span> | </span> | ||
Revision as of 06:28, 3 October 2022
Précis
Redvant , or 'dcms<' (dcms-bra), is a collective term for software including react and servant within a DCP context and packaged as a reusable resource demonstrated in various applications such as the tl:dr and by the KEE.
"red" could be
react, redis, light in the ~700 nm range, a proper name as in red5, the parfume, riding hood, Malcom X, Simply, etc..
and "vant" is just from haskell-servant.
Use of Apache ISIS or other fat DDD pkg is intended later in our overall DDD product line engineering (as 'redvantis'). Some enterprise users may prefer the java basing of ISIS or an ERP core and these future developments are anticipated after the foundational elements are established.
Requirements
At this time, this § is the sole exposition besides the code of any forks of constituent 3rd party packages in my public github or my original ones in my private git repo.
For pragmatic reasons, it is accounting oriented and doesn't address the full actual scope of use as implied by § 2.2 below, which could be confusing.
Scope
Redvant carries our use of react and related node based stuff generally but here is discussed for the core purpose of transacting and accounting in domain space systems and apps. The transctional UI is actually django templating which could also be confusing.
As such it is deeply integrated with DCMS, DCP, etc. but these interfaces shall not be required in the product and its operation without them is a design requirement.
Design by Doing
The model use cases are the Web KEE SPA and the Ft doorbell, as well as GT2 2.1 and later and the tl:dr product line, in sofar as their front and middle are concerned.
Transacting
django-oscar
I chose this back end pkg because of its claim of being domain driven. That claim, as it turns out is based on dynamic class loading. So without quibbling and as its sole focus on txing is convenient it turns out to be an early anchor in my DDD praxis.
Provides front end for tx'ing objects. We introduce the notion of an ephemeral tx ledger, oriented to a single, possibly complex tx which is connected to the others (§ 2.4.1.1). Like 'ledger', transaction 'tx' is defined to be an abstract change to a ledger. The process of application of a real instance of such change to persistent ledgers is called settlement.
Consequently, any transaction requirements are realized as constraints on the 16 Oscar Apps or new classes in its framework.
Accounting
Design Principles
Abstraction and Unity
- Ledgers are abstract entities realized differently in different packages but from the perspective of a single accounting ontology.
- Unless qualified, 'ledger' means double entry accounting ledger, a fundamental concept conserved across all ledger implementations, the basis of their unification.
Security and Transparency
This is a requirement that requires a balancing of interests as transparency can conflict with security. Users. i.e. individuals and groups (including firms) may opt for near complete opacity of their accounts which has been the general norm. The System, domain space, however is required to have open books and line items against its books are why it's not complete opacity.
Back End Packages
The pkgs that provide the functional detail in different use cases generally repeat and duplicate functions. By virtue of § 2.4.1.1.2 however, and system ops that implement it, they all operate against common ledgers. When function is duplicated, there is generally only one package that is contextually supported. For example, SQL/SMB has transaction interfaces but these are not used as django-oscar is selected for that and SQL/SMB is used as a back office system only.
hledger
The users personal ledger. It may be convenient for the group administrators personal ledger to be used as the group ledger and this is the assumed default. hledger-web is not duplicated, nonetheless because of its accounting function and system integration, it is deemed a part of 'redvant'.
ledger
Basis of the System Journal, how the system views all ledgers. AKA ledger-cli, ledger c++, the original that was ported to hledger.
SQL-Ledger / LedgerSMB
The enterprise Chart of Accounts (COA), typical of an ERP pkgs ledger. Individuals don't normally view this package and its interface is mod perl based. Every O class user has its own COA. The System COA is visible to all AKPERSONs.
Sonstiges
Commonalities
The same boat small form factor common reusable base with ...
- DS SSO, messaging, and DCMS API setup for product families.
- Videotelephony, defaults to Jitsi.
Deliverables
- tl;dr product line engineering cases for GT2, TASKPM, and YAS3FS.
- stable production level Ft and AC SPAs