Live data from Hacker News

Distributed systems programming has stalled

shadaj.me

131–140 of 232 posts

Re: Distributed systems programming has stalled

#131
post #2

Last month I switched from a role working on a distributed system (FAANG) to a role working on embedded software which runs on cards in data center racks. I was in my last role for a year, and 90%+ of my time was spent investigating things that went "missing" at one of many failure points between one of the many distributed components. I wrote less than 200 lines of code that year and I experienced the highest level…

Which company? Doesn't sound like the infra org I was in at a FAANG

Re: Distributed systems programming has stalled

#132
Since multicore processing a ton of software you use or create is distributed you have to ask if you want to be in control of how it is distributed or not. If you want it easy and let the library figure it out then you have to accept the topological ideas it has. For instance H2O is a great machine learning package that even has its own transparent multi core processing. If you want to go across machines it has its own cluster built in. You can also install it into Hadoop, Spark, etc but once you start going that direction you're more and more on the hook for what that means and if it even is more effective for your problem and what your distributed strategy should be.

Things like re-entrant idempotence, software transactional memory, copy on write, CRDTs etc are going to have waste and overhead but can vastly simplify conceptually the ongoing development and maintenance of even non-distributed efforts in my opinion, and we keep having the room to eat the overhead.

There's a ton of bias against this for good reasons that the non distributed concepts still just work without any hassle but we'd be less in the mud in a fundamental way of we learned to let go of non-eventual consistency.

Re: Distributed systems programming has stalled

#133
post #68

Two things: Distributed systems are difficult to reason about. Computer hardware today is very powerful. There is a yo-yo process in our industry over the last 50 years between centralization and distribution. We necessarily distribute when we hit the limits of what centralization can accomplish because in general centralization is easier to reason about. When we hit those junctures, there's a flush of effort into di…

I would go even further and argue that vast majority of businesses will never need to think about distributed systems. Modern hardware makes them irrelevant to all but the most niche of applications.

I had a longer comment elsewhere but to me this says that the distribution is happening somewhere and what you're also saying is that companies have to decide how much they want or care to control it.

Re: Distributed systems programming has stalled

#134
post #35
post #29

This is outside my area of expertise, but the post sounds like it’s asking for “choreographic programming”, where you can write an algorithm in a single function while reasoning explicitly about how it gets distributed: https://en.m.wikipedia.org/wiki/Choreographic_programming I’m curious to what extent the work in that area meets the need.

You caught me! That's what my next post is about :)

I see from your bio that you are a PhD student. What are you doing with choreographies? (I’m in this space too.)

Re: Distributed systems programming has stalled

#135

This reminds me of Rob Pike's article "Systems Software Research is Irrelevant," written about 15 years ago. Perhaps many systems have matured to a point where any improvement appears incremental to engineers, so the conviction to develop a new programming model isn't strong enough. Or perhaps we're in a temporary plateau, and a groundbreaking tool will emerge in a few years. Regarding Laddad's point, building tools…

> This reminds me of Rob Pike's article "Systems Software Research is Irrelevant," written about 15 years ago.

25 years ago: http://herpolhode.com/rob/utah2000.pdf (Time flies.)

Re: Distributed systems programming has stalled

#136
post #9

Earlier quoted context omitted.

The real kicker is that it wasn't even management saying this, it was "senior" developers on the team. I wonder if these roles tend to attract people who get the most job enjoyment and satisfaction out of the (manual) investigation aspect; it might explain some of the reluctance to adopting or creating more sophisticated observability tooling.

Senior doesn't always mean smarter or more experienced or anything really. It just all depends on the company and its culture. It can also mean "worked for longer" (which is not equal to more experienced, as you can famously have 10 times 1y experience, instead of 10y experience) and "more aligned with how management at the company acts".

I have heard it as 20 versus 1, but it is the same thing.

also called by some other names, including NIH syndrome, protecting your turf, we do it this way around here, our culture, etc.

Re: Distributed systems programming has stalled

#137
post #34
post #25

Throwing in my two cents on the LLM impact - I've been seeing an increasing number of systems where core part of the functionality is either LLMs or LLM-generated code (sometimes on the fly, sometimes cached for reuse). If you think distributed systems were difficult before, try to imagine a system where the code being executed _isn't even debuggable or repeatable_. It feels like we're racing towards a level of compl…

That's okay though! We can just make LLMs grasp it!

ironically or not, the best way to have LLMs be effective at writing valid code is when they work on microservices. Since the scope is smaller and the boundary is clear, tools like Cursor/Windsurf seem to make very few mistakes (compared to pointing them at your monorepo, where they usually end up completely wrong)

Re: Distributed systems programming has stalled

#138

Earlier quoted context omitted.

> But then, frankly, mass adoption of SSDs, much more powerful computers, etc. made a lot of those things less necessary. The stuff that most people are doing doesn't require a high level of distributed systems sophistication. I did my MSc in Distributed Systems and it was always funny (to me) to ask a super simple question when someone was presenting distributed system performance metrics that they'd captured to com…

“You can have a second computer once you’ve shown you know how to use the first one.” –Paul Barham Wow I love that. Many people in our profession didn't seem to really notice when the number of IOPS on predominant storage media went from under 200 to well over 100,000 in a matter of just a few years. I remember evaluating and using clusters of stuff like Cassandra back in the late 00s because it just wasn't possible…

My not-super-humble opinion is that people didn’t notice because SSDs became mainstream/cheap around the same time cloud migration got popular. Lots of VPS providers offer pretty mediocre IOPS and disk bandwidth on the lower tiers; I’d argue disproportionately so. A $300 desktop from Costco with 8GB of RAM and a 500GB SSD is going to kick the crap out of most 8GB RAM VPSes for IO performance. So… right when rack mounted servers could affordably provide insane amounts of IO performance, we all quit buying rack mount servers and didn’t notice how much worse off we are with VPSes.

Re: Distributed systems programming has stalled

#139

Oh god, even this article has AI and LLM section in it. When I thought distributed system design could not get any worse, someone actually pitched AI slop in it. God I want to dig a cave and live in it.

> When I thought distributed system design could not get any worse, someone actually pitched AI slop in it.

I am not sure that pointing out that today's models are going to be MUCH worse at reasoning about distributed code than serial code is "pitching".

Conversely, pointing out that the reason they are so bad at distributed is the lack of related information locality, the same problem humans often have, puts a reasonable second underline on the value of more locality in our development artifacts.

Re: Distributed systems programming has stalled

#140

Earlier quoted context omitted.

This resonates a lot with me. Distributed systems require insanely hard math at the bottom (paxos, raft, gossip, vector clocks, ...) It's not how the human brain works natively -- we can learn abstract thinking, but it's very hard. Embedded systems sometimes require the parallelization of some hot spots, but those are more like the exception AIUI, and you have a lot more control over things; everything is more local…

Most embedded systems are distributed systems these days, there's simply a cultural barrier that prevents most practitioners from fully grappling with that fact. A lot of systems I've worked on have benefited from copying ideas invented by distributed systems folks working on networking stuff 20 years ago.

Indeed. I've been building systems that orchestrate batteries and power sources. Turns out, it's a difficult problem to temporally align data points produced by separate components that don't share any sort of common clock source. Just take the latest power supply current reading and subtract the latest battery current reading to get load current? Oops, they don't line up, and now you get bizarre values (like negative load power) when there's a fast load transient.

Even more fun when multiple devices share a single communication bus, so you're basically guaranteed to not get temporally-aligned readings from all of the devices.

Post reply on HN