There are three classes of messages that are used within the DIDO node network.
Transactions are messages containing instructions on how to change the ledger from one known state to the next state. Transactions are sent to all the nodes within the Node Network providing instructions on how to modify the ledger data to the next state. When all the transactions have been applied to all ledgers on all of the individual nodes within the node network, the ledgers will have the same state and can be treated as a single datastore. These transactions are executed using a transaction Application Programming Interface (API), an API.
Like transactions, transforms are instructions that change the state of a “ledger” from one state to another. Transforms are not as order dependent as transactions and are NOT sent to all the nodes. Transforms may or may not be sent to DIDO Nodes. The Transform Network represents Transform Nodes participating in the transformation of some content. Once the content transformation is complete, the changes made from the initial state of the content to the new state of the content are formulated into a Transaction and sent to all the Nodes in the DIDO Network. A Transform API is used to perform this action.
Streams are a way of subsetting or filtering DIDO Transactions using a publish/subscribe paradigm. This allows any particular Node within the Node Network not to have to listen-to or process-all the transactions presented to it. This is similar to Transforms; however, the participants in the transforms do not have to be part of the Node Network.