This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:mmutable [2021/05/22 14:11] nick |
dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:mmutable [2021/10/29 17:14] (current) nick |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| [[dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:start| Return to Common Definitions]] | [[dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:start| Return to Common Definitions]] | ||
| - | Immutable Data Objects does not mean that the data can never change or that it is static or final. What it does mean is that the data is never deleted and that any changes have to be made using transactions. The transactions define the operations that need to be performed to change the data from its previous state to the next. The Data is stored within a record containing a pointer to the previous record containing the previous data. Since the original record can not be modified, it can only point to the previous record in the set of records. The first record stored within the "stack" of records is referred to as the genesis record. | + | [[dido:public:ra:xapend:xapend.a_glossary:i:immutable|Immutable]] Data Objects does not mean that the [[dido:public:ra:xapend:xapend.a_glossary:d:data_object|Data Object]] can never change or that it is static or final. What it does mean is that the Data Object is never deleted and any changes have to be made using Transactions. The Transactions define the operations needed to change the Data Object from its previous state to the next state. The Data Object is stored within a record containing a pointer to the previous record Data Object. Since the original record can not be modified, it can only point to the previous record when it was originally created. The first record stored within the "stack" of records with the original Data Object is referred to as the genesis record or genesis Data Object. See Figure {{ref>ImmutableDO}}. |
| - | <figure> | + | <figure ImmutableDO> |
| {{ :dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:screen_shot_2021-05-22_at_11.01.39_am.png?600 |}} | {{ :dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:screen_shot_2021-05-22_at_11.01.39_am.png?600 |}} | ||
| - | <caption></caption> | + | <caption>The Immutable Data Chain</caption> |
| </figure> | </figure> | ||
| + | |||
| + | The Transactions should only contain the information required to change the data object from one state to the nxt. yes, it is possible to send a transactions that says replace the previous Data Object with a new Data Object, but this is costly in terms of the [[dido:public:ra:xapend:xapend.a_glossary:b:bandwidth|bandwidth]] required to keep all copies of the Data Objects synchronized. | ||
| /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | ||