5 ms·
That only works with similar architectures. I've been involved with converting mainframe batch systems to service-oriented architectures on distributed systems,
by beat 7y ago
That only works with similar architectures. I've been involved with converting mainframe batch systems to service-oriented architectures on distributed systems, and that sort of mirroring does not work at all.
It's fine for prying microservices loose from monoliths for relatively modern REST api systems, tho. Big problems I see there are that the problem often isn't the code, but rather the api itself that's a mess, and evolving the api breaks client code which you may or may not control.
- dtech 7y ago> converting mainframe batch systems [...], and that sort of mirroring does not work at all. Interesting, what are the problems you encounter if you try that?
- beat 7y agoThe problem is that you're building a new system to completely replace an existing system, and the existing system is tightly integrated in a way that makes piecemeal change difficult to impossible. And the new system isn't just a refactoring for bad code - it's a redesign in the name of new functionality. In this particular case, it was a banking system that worked largely by nightly batch jobs. Data queued up during the day was processed at night. Job A triggers Job B, which Triggers Job C; etc. What we wanted was to change those batched transactions into individual transactions that could be processed in synchronous quasi-realtime. With reconciliation happening near the end of the batch processing, how do you do that? And mind you, this system moved more money every day than the GDP of many countries. Failure was NOT an option. Not if you don't want to roast the entire US economy. So the consequences of error were truly terrifying.