Re:Monolith First (2015)
by 1penny42cents on Friday February 19, 2021 @05:24PM
(#26198815)
The programming model is fundamentally different between local vs distributed. Imagine if every local function call in your monolith significantly increased in error rate and latency. Your optimal algorithms would change - you can't just loop over a network call like you can with a local function call. That's what happens when you take a local invocation and put it across a network boundary. The probability of things going wrong just goes up.
[ Parent
| on HN ]
Re:Monolith First (2015)
by hcarvalhoalves on Friday February 19, 2021 @05:30PM
(#26198876)
I'm not proposing to code like a monolith - but I don't see a reason there can't be a programming model that unifies that.
APIs like Spark, for instance, make it largely transparent - processes are scheduled by the driver in nodes w/ hot data caches, and processes that fail are transparently retried; and yet this doesn't impact how you write your query. Effects systems are another thing can help us reason around i/o as function calls and handle the fail-ability.
I would bet it's a matter of lacking good accepted patterns instead of a theoretical impossibility.
Re:Monolith First (2015)
by 1penny42cents on Sunday February 21, 2021 @03:25AM
(#26211822)
It's not a theoretical impossibility: you can wrap every function call in a monad today if you want. It's just a practical nightmare.