Member-only story
A 5-minute introduction to Immutability for your entire stack
Immutable: unchanging over time or unable to be changed.
Immutable Object: an object whose state cannot be modified after it is created
As a software engineer — front-end or API developer, DevOps engineer, Data Engineer, or even a blockchain developer, you cannot avoid discussing ‘immutability’ with your System designers.
Immutability as a pattern has several applications in all of the above disciplines, from Functional Programming to Infrastructure as Code, to Kafka distributed log and decentralized Immutable ledger. No matter the applicability, the philosophy is the same.
One thing to get out of the way is critical to have this foundational discussion, if things are immutable, how are they changing? Because we need to change almost everything we create, right?
Immutability makes change possible through clean code. It also makes the paradigm of building software and infrastructure more reliable and testable. There are far fewer bugs, period.
Immutability as a best practice existed all the way back to the initial days of C with Classes by Bjarne Stroustrup, the predecessor to C++ when const keyword was introduced in 1981.