We read that 95% of ATM swipes rely on COBOL code, and there are 220 Billion lines of COBOL in use today. So I suppose COBOL must execute logic in some magical, arcane manner. Can this be so?
Say we have two black box systems, the first running COBOL ATM code and the second running the Eventz ATM method:
y = F ( Y , e ) — — — — — — — — — — — (1)
where, ‘e’ is some new event, ‘F’ is the Function that executes the rules for ‘e’, ‘y’ is an immutable data tuple that logs the transaction, and ‘Y’ is the immutable set of every previous ‘y’. Eventz uses RabbitMQ to publish ‘y’ and ‘F’ can subscribe to classes of ‘y’, so it is always well informed, current.
Then must Box 2 fail to emulate Box 1 results? Is Box 2 unable to perform exactly like Box 1?
That seems unlikely. Box 1 processes some finite set of events according to the rules that were coded long ago in the COBOL language and linking with DB2, etc., and Box 2 can process the same finite set of events ‘e’ using the technology agnostic (but likely Python) Functions ‘F’.
We are not competent with the legacy Box 1 technology, but we do understand the events that it handles and the rules that it applies. It seems that we could make Eventz work here.
Say I want to withdraw $100 and my Balance is $110. That works, unless another $90 withdrawal has just depleted the Balance to $20. In Box 2 the Archive ‘Y’ will hold both the $110 and the $90 records, so ‘F’ calculates a balance of just $20, in near real time. Eventual consistency says that ‘F’ must wait 2 seconds, say, in case another withdrawal arrives by RabbitMQ messaging. Sure there is a complex backbone of fragile communications systems for Box 1, but the immutable data records in ‘Y’ can do the same job, and better.
I get that the stakes are high and folks are nervous making any changes. So I would run Box 1 and Box 2 in parallel for 1 million transactions, say, before I would trust Eventz to work. And then I would trust it to work.
Eventz is simply swell!