20,580 karma · joined December 25, 2012
The development experience in IntelliJ-family IDEs is incomparably superior, but you have got to figure out how to run the code indexing on the remote server and the UI locally. This quasi VNC thing isn't it.
Service A: publish a notification indicating that some new data is available.
Service B: consume these notifications and call back to service A with queries for the changed data and perhaps surrounding context.
What would you recommend when something like this is desired?
I code for free. I get paid to deal with JIRA, Zoom meetings, and the Bay Area.
There is no sign of a return to 2019 levels of Bay Area or even US share of headcount.
What would it mean to have one-way communication over TCP? Don't you need to send the acknowledgements back?
That said, it's also important the reviewer feels equally responsible for getting the work done and is willing to make pragmatic tradeoffs taking into account timeline pressure, how contained something is, how likely it is to actually cause trouble, how hard it is to change later. Cross-team and cross-org reviews are more likely to involve pure gatekeeping, which is death.
Having the latent capability to serve endpoint A in the binary is not interfering with endpoint B's QPS unless it implies some kind of crazy background job or huge in-memory dataset. Even in this case, monoliths normally have a few different components according to function: API, DB, cache, queue, background worker, etc. You can group workloads by their structure even if their business purposes are diverse.
This is a solution to a large chunk of what people want out of microservices. There are just two problems, both of which feel tractable to a language/runtime that really wanted to solve them:
1. If the code implementing the module API is private, it must all be colocated in one package. If it is public, then anyone can import it, breaking the module boundary. You need a visibility system that can say "this subtree of packages can cooperate with each other, but code outside the subtree can only use the top-level package."
2. If a change module A has a problem, you must roll back the entire monolith, preventing a good change in module B from reaching users. You need a way to change the deployed version of different modules independently. Short of microservices, they could be separate processes doing some kind of IPC, or you need a runtime with hot reloading (and a reasonably careful backwards compatibility story).
I think the impulse to scroll is a feature of my own psychology, not something inculcated in me by Tech, and small web properties with simple feed algorithms are capable of feeding it perfectly well, often better than Big Tech and its data science armies.