Redvant: Difference between revisions
Line 44: | Line 44: | ||
== Accounting == | == Accounting == | ||
<blockquote> | <blockquote> | ||
=== Principles === | === Design Principles === | ||
<blockquote> | <blockquote> | ||
Line 61: | Line 61: | ||
</blockquote> | </blockquote> | ||
=== Packages === | === Back End Packages === | ||
<blockquote> | <blockquote> | ||
==== hledger ==== | ==== hledger ==== |
Revision as of 13:42, 1 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 the development our overall DDD product line engineering (i.e. a '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 pkg because of its claim of being domain driven, supporting DDD. 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.
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
hledger
The user reference ledger, how individuals and groups view their ledger. hledger-web is not duplicated.
ledger
The plaintext reference ledger, how the system views all ledgers. AKA ledgercli, ledger c++, the original that was ported to hledger.
SQL-Ledger / LedgerSMB
The enterprise reference ledger, typical of a firms view of their ledger. Individuals don't normally view this package and its interface is mod perl based.
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