4 ms·
I think one cannot understand the usefulness of mainframes without adding data integrity to the picture. Let's take a bank or an insurance company. For them, d
by kukkeliskuu 4y ago
I think one cannot understand the usefulness of mainframes without adding data integrity to the picture.
Let's take a bank or an insurance company. For them, data integrity is of utmost importance. If you miscalculate bank account balance or insurance payment by one dollar, you erode trust, which is the most important asset they have.
You will have data in multiple systems, none of which have the complete picture of all the data. So you need data integrity over multiple systems.
Most modern architecture books recommend REST microservice architecture and "eventual consistency" approach to data integrity. The use of "sagas" is recommended for implementing this data integrity. However, this is not enough if you have high on-line data integrity needs, such as the banks have. And even if your needs are not as high, it is very difficult to get eventual consistency "right".
On mainframe platforms, you have TP monitors (such as IBM CICS). Within TP monitors, you implement services, which is very similar to "serverless functions" such as AWS Lambda, but with distributed transactions.
These TP Monitor services may be distributed across multiple physical "servers", and we can scale up the number of these services if needed. The platform provides reliability that is easily as high as AWS Lambdas. Also, you don't need to deal with the container startup time issues or pay for the container virtualization overhead.
But the biggest benefit TP Monitor services have over modern "serverless functions" is the support for distributed transactions. I can call another service from within a service inside the context of the same global transaction, and the platform will take care of the distributed global transaction handling for me. This is essential when you need to guarantee high data integrity over various systems.
There is at least one TP Monitor (Oracle Tuxedo) that runs on Linux as well, but if you look at the tooling, it resembles more the mainframe world than modern development.
In my understanding there is no modern platform with this kind of data integrity guarantees.
(Caveat: Although I am involved in a mainframe modernization project in a company in a related field, my knowledge of mainframes is fairly limited.)