Live data from Hacker News

How Netflix really uses Java

infoq.com

71–80 of 100 posts

Re: How Netflix really uses Java

#71
post #18

I bought into the "RX Java/JS/etc.." years back. Everyone I showed the code couldn't handle it, and we just backed off to other methods, and things worked just fine. RX has some interesting ideas, but from a practical standpoint, at companies not netflix, it just doesn't work

I had a close look at RxJava and decided I wasn't smart enough to understand it. I intentionally didn't tell my colleagues about it, they would have loved it and I would have been in big trouble.

Yeah, I'm in the same boat. I'm coming fresh to the team and I haven't written any Java in anger for 8 years, and there's Rx in here. I'm sure I could sit here and study it over and over until I get it, but why? My service is running at Promises are all over the place too. I understand why someone thought this was a good idea ("I'm doing the scalable thing!"), but in the end it appears completely unnecessary (e.g. doing a blocking get call in all uses).

The problem with Java isn't Java. The problem with Java is that it lets so many people hold it wrong, and the Java ecosystem encourages it.

Re: How Netflix really uses Java

#72
post #44

[flagged]

I mean, I upvoted the story because Netflix is pretty well-known for being a high-intensity dev environment where people are regularly PIP'd and dismissed if their engineering output doesn't measure up - of all the companies which do the eye-rolling claim of "we only hire 10x engineers", Netflix is one of the only ones for which it kinda holds water. And yet, despite this, their stack is boring old Java+Spring. That…

I'm a Scala developer, so we get the shiny on top of boring old Java.

Re: How Netflix really uses Java

#73
post #6

Prev: https://news.ycombinator.com/item?id=37829395

Thanks! Macroexpanded:

How Netflix uses Java - https://news.ycombinator.com/item?id=37829395 - Oct 2023 (196 comments)

(Reposts are fine after a year or so, but when a story has had significant discussion within the last year or so, that's what counts as a dupe on HN. This is in the FAQ: https://news.ycombinator.com/newsfaq.html.)

Re: How Netflix really uses Java

#74
post #62

This is mostly off-topic I suppose but I recently noticed that Netflix, and Netflix on my TV(WebOS) specifically is absolutely spamming my router with DNS requests sometimes several times a minute, most of them for nrdp-ipv6.prod.ftl.netflix.com. I'm not blocking them btw, so it's not some buggy retry thing going on. Even if I do a hard reboot of my TV and don't start the app, my TV is still happily resolving away. I…

> absolutely spamming my router Ah, how many k/second? > sometimes several times a minute WTF? We're talking 0.00003 thousand requests/second? Most apps do several DNS queries per minute. Otherwise every DNS update would require >1 minute to propagate. Slow DNS updates is a massive pain in the ass. FWIW, ISP DNS servers and cheap home routers are both capable of caching DNS responses, updating the cache when they get…

My DNS service isn't having any problems, that's your imagination. Everything works. It's just filling up my quota. If "every app" is doing this, why does Netflix account for close to half of all DNS requests on all my devices?

I explained to them that I'm not even using ISP DNS. They still told me to talk to the ISP. Still think it was the correct response? It was obvious they didn't even know what DNS was, they were just slavishly following a script that said DNS resolving issues -> ISP. They didn't even grasp what I was reporting to them.

Re: How Netflix really uses Java

#75
post #7

I never worked with micro services, but I have this question. Do micro services require more and better management? I can imagine that you need to keep track of all these services, along with information about dependencies, code version, API version and others. Of course, monolithic services also require these this sort of management, but it should be less complex.

The whole microservices thing is a little crazy. Someone just looked at what devs came to realize worked well, slapped a name on it and it blew up as a hot thing. Since then, I've seen so much wrong done in the name of 'microservices'. It shouldn't be some aspirational goal to work with them. Also, the fact that the word 'micro' is in the name makes the cargo culters split atoms to reach some tiny nirvana. The size i…

After few years of development, current project has around 30 microservises which are dependent on each other, communicate through Kafka and have individual mongo databases each with lots of data duplication.

We call it distributed monolith. It has the worst things of the both architectures.

Re: How Netflix really uses Java

#76
Has anyone else used Netflix DGS outside of Netflix to build GraphQL servers? I'm wondering what the experience was like. Full disclosure: I work at a GraphQL company. But still, I'm genuinely curious. I was a longtime back-end Java developer, and I'm wondering what the experience is like these days.

Re: How Netflix really uses Java

#77
post #7

I never worked with micro services, but I have this question. Do micro services require more and better management? I can imagine that you need to keep track of all these services, along with information about dependencies, code version, API version and others. Of course, monolithic services also require these this sort of management, but it should be less complex.

In many ways, micro services are an engineering solution to a management problem, which is: how do we keep feature teams etc. unblocked and constantly deploying without stepping on each other?

Some famous (Google, Meta, Microsoft IIRC) went into the "one repo to rule them all" approach, with requisite tooling, culture, and expectations to enforce that.

Netflix, Amazon (and I suspect a great deal others) went the micro services route.

As far as I can tell, its about whether or not you can reasonably maintain a good mono-culture around development practices and tooling or not ends up being the main question.

Now, there are aspects of micro services that cross these boundaries, but I strongly believe based on my industry observations that this is where it grew out of. If you think about how these organizations approach developing software it can give you a pretty good idea of why they ended up where they did on this frontier.

Re: How Netflix really uses Java

#78

Earlier quoted context omitted.

> ...the async/await mess that C# created What do you find messy about it? Seems fairly straight forward, IME.

Not sure what the poster above was thinking of, but it seems kinda the same as every other language that’s adopted it - powerful, but footguns abound. I ran some async C# in a debugger - in Rider - the other month, and the debugger just goes off the deep end. Does C# have the same issue Python does with accidentally calling blocking code? In async Python - which I mostly quite like actually - it’s terrifying to bring…

    > Does C# have the same issue Python does with accidentally calling blocking code? 
This can't really happen in C# except maybe if you are working on a GUI thread and you make the mistake of running blocking code on a GUI thread.

For APIs, console apps, and such, it's not a concern for actual parallel-concurrent code. Of course, if you write a standard non-parallel `for` loop that has blocking code, it's going to block in a console app as well if you don't run it on a thread.

But I think that once you do enough JS/TS or C#, `async/await` doesn't feel very onerous if you have the basic concept.

Re: How Netflix really uses Java

#79
post #10
post #7

I never worked with micro services, but I have this question. Do micro services require more and better management? I can imagine that you need to keep track of all these services, along with information about dependencies, code version, API version and others. Of course, monolithic services also require these this sort of management, but it should be less complex.

The short answer is yes. The longer answer is that you will spend a bunch of engineering time on building systems to help manage these things, but if you do it well and you're at a large enough scale, the investment pays off. Some companies spend a bunch of engineering time making their monolith easier to manage (Google/Facebook) and some spend it making microservices work (Netflix/Amazon). Neither one is better, jus…

> making their monolith easier to manage (Google/Facebook)

Google has Borg.

They literally invented Kubernetees to make their microservices easier to manage.

---

Don't confuse mono/microservices with mono/micro repositories.

Re: How Netflix really uses Java

#80
post #10

Earlier quoted context omitted.

The short answer is yes. The longer answer is that you will spend a bunch of engineering time on building systems to help manage these things, but if you do it well and you're at a large enough scale, the investment pays off. Some companies spend a bunch of engineering time making their monolith easier to manage (Google/Facebook) and some spend it making microservices work (Netflix/Amazon). Neither one is better, jus…

> making their monolith easier to manage (Google/Facebook) Google has Borg. They literally invented Kubernetees to make their microservices easier to manage. --- Don't confuse mono/microservices with mono/micro repositories .

I'm aware of that. I was talking about their modified version of Subversion.
Post reply on HN