Hacker Newsnew | past | comments | ask | show | jobs | submit | SadCordDrone's commentslogin

Also - you give up type safety and refactoring. LoL


Well, technically, you can construct the microservices preserving type safety. You can have an interface with two implementations

- on the service provider, the implementation provides the actual functionality,

- on the client, the implementation of the interface is just a stub connecting to the actual service provider.

Thus you can sort of provide separation of services as an implementation detail.

However in practice very few projects elect to do this.


Even with this setup in place you need a heightened level of caution relative to a monolith. In a monolith I can refactor function signatures however I desire because the whole service is an atomically deployed unit. Once you have two independently deployed components that goes out the window and you now need to be a lot more mindful when introducing breaking changes to an endpoint’s types


You don't have to. The producers of the microservice also produces an adapter. The adapter looks like a regular local service, but it implements the code as a REST request to another microservice. This was you get you type-safety. Generally you structure the code as

Proj:

|-proj-api

|-proj-client

|-proj-service

Both proj-client and proj-service consume/depend-on proj-api so they are in sync of what is going on.

Now, you can switch the implementation of the service to gRPC if you wanted with full source compatibility. Or move it locally.


Didn't read article fully, but - since it's protocall buffer definitions, what if these fields are there for backward compatibility?


As I said elsewhere, morality is a social construct. Survival is a biological instinct.


Not if the customer is killing a potential future adversary to my family or even distant relatives.

Morality is a social construct. The selfish gene is a biological construct.


Good thing they're also running the service that decides who to kill based on their browsing history and what group chats they're in.


This is very logical, albeit sounding rude. I think the parent commenter should not be downvoted for this.

If you cant come to terms with what your employer is doing, it's in the right of the either party to terminate the contract.

Morality is a subjective argument and non-sequiter here anyway.


It's only logical if you ignore the strawman assumption that these protesters assumed no personal risk.

Though morality can be subjective, culturally we have coalesced on many shared moral values (a subset of which have been codified into law, for example, it is both immoral and illegal to kill someone in most peace time circumstances). And since "morality" encompasses a broad set of expected behaviors that manifests in practically every facet of our lives, it's unfortunately relevant at pretty much all times. Morality is quite necessary for high functioning societies.

Since companies like Google dilute responsibility and behave collectively as sociopaths in the pursuit of money, I'm quite glad we have people willing to self-sacrifice to keep them from behaving a-socially (or, arguably, evilly). Yes, it's probably safer and "logical" for most people to avoid sticking their necks out for what the believe in.


Sir, in most companies if you suggest something technical without having equivalent political power, at best, no one will listen to you. At worst you will create political enemies.

Probably there was an SDE-2 or SDE-3 who called bullshit on it and got ignored.


You call bullshit on it by either refusing to run the test, or better and more helpfully by running a test that answers the performance question.

I've seen these kinds of requests plenty of ways. Sometimes those asking include a design or specs because they honestly thought that was the right way to do it, other times they are knowingly asking for (in this case) a useless test to check a box. In either case, IMO the right response is to ask questions to clarify the goals and build to that, changing the provided design or specs if necessary.

I've had to play this out dozens of times over the years and never earned enemies from if, at one point I won over the PM leader that everyone on the dev team warned me about. Its all about tact and approach, assume everyone is on the up and up and just ask good questions to clarify the goals. Its hard to get mad at that unless its done in a condescending or argumentative way.


Hey Tim, come with your real ID.


My first question is - are these spams fishing for direct victims, or some dirty SEO trick?


If it was an SEO trick, you'd think they wouldn't bother at-mentioning people. Usually SEO stuff tries to fly under the radar so it can stay online, and visible to search engines, for as long as possible. (Like the classic technique of spamming generic "nice post!" comments on WordPress blogs with your profile URL set to the spam site.)


> There's a reason that kids use TikTok as search engine on mobile.

That's because kids are dumb and have no attention span to read anything.

Source: I am from the same generation you talk of.


Reading is a skill. The more you read, the better you get. The laptop encourages you to surf (and surfing is reading), the phone encourages you to scroll, usually through images and videos.

Attention span is a separate issue. I lack the attention span to watch a short youtube video, but I can easily read long essays.


The phone is not that bad for reading.

Granted, reading PDFs is harder. But reading webpages is mostly fine.

When I started using phones, I didn't have the luxury of high speed internet and multimedia-focused apps. I should probably be thankful for that.


The phone is good for reading, but not good for surfing, which is where the motivation to read comes from.


I'm actually surprised that grafana is just 350 MB, I deal with more trivial images which pack 700-800 MBs.


The grafana/grafana-oss docker image has a bin/grafana static go binary that takes up 180MB. It compresses to 20% that size as does the long tail of .js.map files each of which are 1MB to 10MB in size. Presumably these are only there for debugging Javascript. I wonder why they were included?

The whole image is ~80MB, compressed. It is, indeed, impressively lean.


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: