DMT SYSTEM consists of two words. One word does not mean anything (DMT) and the other word is incredibly important (SYSTEM).
We are building a system.
DMT SYSTEM is an emergent system built from autonomous interconnected software parts.
The core of DMT SYSTEM is DMT ENGINE.
DMT ENGINE has two parts:
- immutable core that receives upgrades periodically with long or short periods of complete lack of any code additions in its stable phase
- engine extensions under total control of end users, they may be added, removed, updated or modified at any point in time and nobody has any visibility into these happenings except for the user doing them
In general the core and immutable DMT ENGINE is static code living in a GitHub repo and user's DMT ENGINE with EXTENSIONS is static code living on one or more user's machines (simply sitting on the file system).
DMT PROCESS is a running instance of DMT ENGINE and is designed to reliably, efficiently and constantly run on:
- Single Board Computers (like Raspberry Pi)
- Personal Computers
DMT ENGINE is first obtained (cloned) from reference copy on GitHub to user's main device (usually PC), extensions are then added by user (more on this in pt. 2) and afterwards DMT ENGINE with EXTENSIONS is replicated to all other user's devices through dmt update command.
Main characteristics of DMT PROCESS are:
- it is a lightweight computing process which uses minimal memory and CPU
- it can communicate with any other computer process to receive information from it or control it — like mpv (example of local process) or pushover notification servers (example of communication with remote 3rd party process / service and is more rare than local communication)
- it serves GUIs (example: Raspberry Pi tablet DMT PLAYER user interface, DMT SEARCH on server etc.)
DMT ENGINE will never be good for graphics or similar compute intensive / visual computation but rather for observing transitory events, controlling processes, serving intuitive GUIs and more and more interacting with blockchain nodes.
DMT ENGINE currently avoids almost any aspect of storing and retrieving data from databases because traditional databases are usually not distributed systems and/or are hard to manage with a lot of danger of losing data. Most databases need professional management, backup strategies and constant maintenance. For traditional use cases that do not fit into blockchain the big centralized services are still the most suitable.
For our data needs we will mostly use blockchains as well as hypercore stack and some CRDT technologies for data / multimedia retrieval and management. These are all next steps in evolution of DMT SYSTEM.
Successful user experiments with DMT ENGINE EXTENSIONS over time translate into the core of DMT ENGINE or become available to other users through DMT APPSTORE (more in pt. 2).
We saw that DMT SYSTEM has two core concepts:
- DMT ENGINE (with EXTENSIONS)
- DMT PROCESS
These two are actually one thing (viewed statically vs. dynamically). The core concept is thus just one and this is DMT PROCESS (= running ENGINE).
DMT ENGINE EXTENSIONS can be fully private (never leaving users' devices) or they can be shared with community either through upcoming DMT APPSTORE or more narrowly (for example with family and friends). User/developer might legitimately not want to share their EXTENSIONS since this would also mean general support and maintenance and possibly limited freedom in development. It is sometimes better not to share great stuff than share and then fail to keep that thing great or burn out as a developer. Everyone will know when the right time to share is if that moment comes.
We can now fully understand the definition DMT SYSTEM as a decentralized extensible platform. It is important to note that in general any set of DMT PROCESSES does not neccessarily form a connected network and when it does this network does not maintain consensus like blockchains do.
Extra: TWO ASPECTS OF DMT SYSTEM
DMT SYSTEM has two distinct but related meanings (can be looked at from two angles):
- in particular from perspective of one user (this is all that matters to that user)
- in general (this matters in the sense that it produces a quality platform in the first place)
Each user sees his or her DMT SYSTEM exactly as any other user sees theirs:
- DMT SYSTEM in particular for any user that is running one or more DMT PROCESSES on their devices means just that: a dynamic system consisting of 24/7 running evented code which acts as a reliable digital distributed servant doing exactly the things that it is supposed and instructed to do (serving search requests, playing multimedia, managing IoT events, p2p sharing of digital assets, monitoring and communication with blockchain nodes, sending push messages on important events, any additional EXTENSION logic etc.).
General view of DMT SYSTEM is that of a good long-term system for bringing about great technical solutions so that each user can have their own reliable SYSTEM of devices as described above:
- DMT SYSTEM in general (= also sometimes called uniqpath for clarity and disambiguation) are the structures and approaches around advancement of DMT ENGINE. This part can be static and non-eventful for long stretches of time. There is no support you can call, nobody to take care of problems with your devices apart from objective bugs and issues with DMT ENGINE. There is also not much help with setup of your first Raspberry Pi except one semi-long document with exact steps to follow. Step zero is buying a Raspberry Pi which most people don't do since it's not a product in the same category as mobile phones etc. You get the point. To get the most of DMT SYSTEM you must suffer the burden of learning and tinkering with many computing aspects. It is not easy to get started or even set everything up but once you do, it's quite rewarding. Reward is knowledge obtained and having a working extensible DMT SYSTEM with little ongoing maintenance (except in times of progress — instability). All of this does not mean that we don't plan to improve on our larning materials, documentation, approachability and everything else but for now we are not in an expansion phase in this regard. Initial plan to capture at least some interest succeeded and we have a small team of good and passionate developers / users which mostly work on DMT SYSTEM for their own needs, me being one of them. We don't communicate every day, sometimes months pass by and there is simply no need / no urgent issues to resolve or fires to extinguish. We always get back in touch when good ideas emerge, there is good code (EXTENSIONS) to share or we feel it's time to move the core of DMT ENGINE forward. We then use DMT MEET p2p video chat app running inbetween our ENGINES. DMT MEET is not yet ready for general use but will possibly be available as one of the first apps on DMT APPSTORE.
When DMT SYSTEM in general is not advancing I have the exact same role as any other user running their own set of DMT PROCESSES. This means I only care about my DMT SYSTEM in particular and I advance it by adding EXTENSIONS and coming up with experiments / useful apps on top of it.
Or I just enjoy utilizing it and getting all the benefits of it existing in the first place — to make my and my family's life simpler.
In the expansion phase when uniqpath (= DMT SYSTEM in general) is advancing I'm temporarily communicating more with other DMT users I'm aware of, gathering feedback, ideas, wishes and desires and incorporating changes and upgrades into the core DMT ENGINE / testing their EXTENSIONS or sharing some of mine.
In DMT SYSTEM pt. 2 we will look into the concept of ENGINE EXTENSIONS in more detail and pt.3 will cover the DMT APPSTORE. These posts will possibly both come in 2022 with small chance that pt. 3 will have to wait until 2023.