10 comments

[ 4.4 ms ] story [ 57.8 ms ] thread
> 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.

And the pendulum swings back yet again.

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.

i fully agree: the pendulum swings back yet again

Reading this I'm thinking "this sounds super similar to serviceweaver". Turns out, it's serviceweaver they're talking about :)
> 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.

Or Erlang and OTP.
Are they trying to reinvent IDL interfaces like in Apache Thrift or Protobuf?
Look at the authors list - Sanjay invented protobuf