> Distributed object frameworks like CORBA, DCOM, and Java
RMI use a programming model similar to ours but suffered
from a number of technical and organizational issues [ 58]
and don’t fully address C1-C5 either.
at the end of the day we're all always reimplementing the same things, over and over again, each time re-engineering and optimising for something different.
> Underneath the programming model lies a runtime that is responsible for distributing and executing components. The runtime makes all high-level decisions on how to run components. For example, it decides which components to co-locate and replicate.
So, Microsoft Orleans, Akka, et. al.?
This feels like rediscovery of virtual actor models to me - aka not the right answer for most business applications.
The end game is proper cloud-native, which means stop thinking about 100% of this bullshit. Alternatively, you need to take full ownership and do it all with single machine monoliths on-prem. Playing around in the middle is a death sentence (K8s, multiple machines, DIY networking stuff, etc). Your cloud provider should be the one taking psychological damage over this stuff, not your team.
There was a paper posted a while back that aptly describes modern development modes relative to the cloud - https://arxiv.org/pdf/2307.01045.pdf. Figure 1 really helps to illustrate the spectrum of thinking. I've been using this aggressively to help various c-suites visualize where we are going. The super weird thing is that they seem WAY more excited about the strategic implications than every developer I know.
Does cloud-native have to mean FaaS platforms with their proprietary APIs and vendor lock-in? Or could it also mean running containers on something high-level like AWS App Runner or Google Cloud Run?
It doesn't have to mean that. There is always nuance in the middle.
I'd simply say this: If you are still coming into direct contact with containerization tech, I don't think you are extracting the maximum amount of value that is currently available on these platforms.
Today, I don't know how many machines are actually supporting our production environment. I don't care anymore. That is the central value proposition.
No, that would be just a component of this system. It looks more like "Distributed OSGi done right" or CORBA's endgame as prophesied by Grady Booch in the 90s. Historically these kind of systems have not worked very well[1][2] but who knows.