Immutable Data: The Complexity and rule

By Leland Johnson

ExcelliMatrix, CEO

April 14, 2023

 

Software systems are complex, and the challenges they present continue to evolve. I recently stumbled upon a blog post I wrote in 2011 that is just as relevant today as it was back then. In that post, I outlined the importance of immutable data in software systems and the impact that end-users can have on it.

 

The situation I described in the original post involved retrieving data from a table with one value and cross-referencing it with a second value. The lookup value was persisted within XML and visible to end-users, but we wanted it to be immutable. This was because there was no way to ensure that if one of the values changed, we would remember to change the other. The end-user could not change the lookup value, and the software application didn't change it.

 

Immutable data is information within a file, table, or program that is "unchangeable." However, I believe that there is one more rule that needs to be applied to the definition of immutable when working with software systems. The rule is that the end-user cannot see it.

 

As I explained in the original post, when end-users can see something, they will eventually ask for that thing to be changed. This is one of the natural laws of software development, and it has not changed since 2011. The human factor always complicates things, and what we once thought of as immutable, can become mutable due to changes in end-users circumstances or preferences.

 

To maintain the viability of a software system, data immutability is crucial. However, we must also be aware that users should never be restricted from changing their username or any other system value that they see and interact with regularly. To maintain the integrity of the system, these values must remain visible to the system only.

 

In summary, my definition of "immutable" from a software systems design perspective is as follows:

Immutable - im·mu·ta·ble [ih-myoo-tuh-buhl]

  • adjective Information contained within a software system that is never changed, can never be changed, and is never visible to end-users of the system.

 

For More blogs like this, please visit us at https://blog.excellimatrix.com/   

You can connect with us on Facebook or LinkedIn. Feel Free to contact us at 406-646-2102 or email us at sales@ExcelliMatrix.com. 

 

Comments are closed
Our team knows the importance of the work we do for our clients. We know that our efforts have a direct impact on your productivity, profitability and success, so we take our tasks seriously! We look forward to providing your company with strong
ROI and value.