There are consequences to designing a system using only immutable records. Some of them are the advantages that we’ve already explored: reliable communications, reduced blocking, increased autonomy, and improved auditability. Other consequences are less desirable. Many of them simply require a shift in thinking, while others demand entirely new solutions. As you adopt immutability into your application design, you will need to recognize how the architecture must change in response.
The trade-offs requiring shift to immutability have led to the emergence of different ...