{"slug": "grpc", "name": "gRPC", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 5, "commenters": 26, "warners": 7, "score": 1.392, "rising": -1.64, "first": "2025-11-05", "latest": "2026-10-29", "why": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 11, "compare": 3, "warn": 7}, "spark": [1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build.", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/grpc/grpc", "official_url": "https://grpc.io", "pricing": "", "aliases": ["gRPC"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 752161361, "item_id": 47010085, "url": "https://news.ycombinator.com/item?id=47010085", "by": "dewey", "date": "2026-02-13", "stance": "recommend", "quote": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build.", "excerpt": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build. Before that it was always a pain with Makefiles building obscure commands, then developers having different versions of the Protobuf compiler installed and all kinds of paper cuts like that. Now it's just \"buf generate\", every developer has the exact same settings defined in the repo and on the frontend side we are just importing the", "context": "", "use_case": "", "switched_from": "", "story": "gRPC: From service definition to wire format"}, {"id": 748304800, "item_id": 46769050, "url": "https://news.ycombinator.com/item?id=46769050", "by": "matttproud", "date": "2026-01-26", "stance": "recommend", "quote": "gRPC forces you to confront them early and explicitly IMO, which is not a bad thing.", "excerpt": "Method signatures in gRPC present a pandora's box of questions: https://matttproud.com/blog/posts/grpc-method-discipline.html. The questions aren't unique to gRPC, however; gRPC forces you to confront them early and explicitly IMO, which is not a bad thing.", "context": "", "use_case": "RPC API design", "switched_from": "", "story": "Transfering Files with gRPC"}, {"id": 748262752, "item_id": 46766422, "url": "https://news.ycombinator.com/item?id=46766422", "by": "ithkuil", "date": "2026-01-26", "stance": "recommend", "quote": "I like implementing this standard gRPC interface", "excerpt": "I like implementing this standard gRPC interface (of I already have a gRPC based project) because it allows me to reuse a troubleshooting utility I wrote that uses it: https://github.com/mkmik/byter", "context": "", "use_case": "Remote procedure calls", "switched_from": "", "story": "Transfering Files with gRPC"}, {"id": 747996832, "item_id": 46749802, "url": "https://news.ycombinator.com/item?id=46749802", "by": "weitendorf", "date": "2026-01-24", "stance": "recommend", "quote": "I think gRPC and using it with json is awesome", "excerpt": "I generally agree although I think gRPC and using it with json is awesome, it's just that like with most of these tools, the investment in setup/tooling/integrating them into your work has to be worth what you get out of them. I actually used to do FaaS at GCP and now through my startup am working on a few projects for cloud services, tooling around them, and composable/linkable FaaS if you're interested! A lot of th", "context": "", "use_case": "RPC services with JSON", "switched_from": "", "story": "Microservices for the Benefits, Not the Hustle"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 789268241, "item_id": 49329265, "url": "https://news.ycombinator.com/item?id=49329265", "by": "PufPufPuf", "date": "2026-08-17", "stance": "warn", "quote": "it's still a nightmare trying to integrate with gRPC from something remotely modern", "excerpt": "The promise of Protobuf/gRPC for seamless communication across tech stacks just wasn't delivered. Third party projects like Buf or BetterProto for Python try their best but it's still a nightmare trying to integrate with gRPC from something remotely modern, like Python with uv and async/await. Plus there's a lot of little pains like not being human-readable, always requiring HTTP/2 and thus HTTPS, and so on. JSON isn", "context": "", "use_case": "RPC", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 785284560, "item_id": 49080285, "url": "https://news.ycombinator.com/item?id=49080285", "by": "flohofwoe", "date": "2026-07-27", "stance": "warn", "quote": "it doesn't, instead it needs to run inside mings", "excerpt": "> so then my glib question: what is the purpose of this project? The whole point is to massively simplify integrating those libraries into Zig projects by explicitly not having to deal with external build systems or compiler toolchains. > Is the grpc makefile no bueno? Does it work out-of-the-box on Windows? That's usually the first question when encountering a Makefile (and just looking at the first lines of the Mak", "context": "", "use_case": "", "switched_from": "", "story": "C/C++ projects packaged for Zig"}, {"id": 769031744, "item_id": 48064484, "url": "https://news.ycombinator.com/item?id=48064484", "by": "fastest963", "date": "2026-05-08", "stance": "warn", "quote": "an issue with gRPC which results in thousands of connections and constant connection churn", "excerpt": "For the last 3 months I've been trying to get support from Google/gRPC/GCS teams to fix an issue with gRPC which results in thousands of connections and constant connection churn. The underlying issue appears to be a constant backend priority rotation with the endpoints for the client to connect to. The gRPC team seems unwilling to address why the gRPC client is opening several hundred connections when I'm not even u", "context": "", "use_case": "", "switched_from": "", "story": "Unbounded connection churn issue in gRPC-go"}, {"id": 764664049, "item_id": 47791503, "url": "https://news.ycombinator.com/item?id=47791503", "by": "clevengermatt", "date": "2026-04-16", "stance": "warn", "quote": "You're right about the gRPC fidelity issues though.", "excerpt": "The spec isn't hiding JSON Schema. There's a section on it with the dialect URI and the subset of keywords OBI uses: https://openbindings.com/spec#json-schema-dialect That said, if it feels buried, I'll look at surfacing it more clearly. You're right about the gRPC fidelity issues though. int64 precision, oneof vs oneOf semantics, enum value mapping, and well-known types all need careful handling when binding to Prot", "context": "", "use_case": "", "switched_from": "", "story": "One Interface, Every Protocol"}]}], "who": [{"by": "hxtk", "context": "works at a company with gRPC retry interceptors", "url": "https://news.ycombinator.com/item?id=49749879", "date": "2026-09-18"}, {"by": "mathewsclint28", "context": "Backend lead on Ford Pro's EV charging platform", "url": "https://news.ycombinator.com/item?id=49229048", "date": "2026-08-08"}, {"by": "Ayaz_Saifi", "context": "CS undergrad (AI/ML), graduating 2026", "url": "https://news.ycombinator.com/item?id=46911265", "date": "2026-02-06"}, {"by": "antonmedv", "context": "Senior backend engineer", "url": "https://news.ycombinator.com/item?id=46863241", "date": "2026-02-02"}], "tags": [], "use_cases": ["cross-service communication", "service rpc retries", "rpc", "rpc framework", "data broadcast", "e-commerce microservices platform"], "compared": [{"slug": "apache-kafka", "name": "Apache Kafka", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "redis", "name": "Redis", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "react", "name": "React", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "docker", "name": "Docker", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "kubernetes", "name": "Kubernetes", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "protocol-buffers", "name": "Protocol Buffers", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "spring-boot", "name": "Spring Boot", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46944430", "title": "gRPC: From service definition to wire format", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=46765273", "title": "Transfering Files with gRPC", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=47784397", "title": "One Interface, Every Protocol", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46857487", "title": "Ask HN: Who wants to be hired? (February 2026)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50273731", "title": "The Agent SDK", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49746628", "title": "How Uber Protects Against Retry Storms", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 1}, "2025-12": {}, "2026-01": {"neutral": 1, "warn": 1, "recommend": 3, "compare": 1}, "2026-02": {"neutral": 3, "compare": 1, "recommend": 1, "warn": 1}, "2026-03": {"neutral": 1, "warn": 1}, "2026-04": {"warn": 1, "compare": 1}, "2026-05": {"warn": 1}, "2026-06": {"neutral": 2}, "2026-07": {"warn": 1}, "2026-08": {"neutral": 1, "warn": 1}, "2026-09": {"neutral": 1}, "2026-10": {"neutral": 1}}, "quotes": [{"id": 804601792, "item_id": 50287612, "url": "https://news.ycombinator.com/item?id=50287612", "by": "zomtorg", "date": "2026-10-29", "stance": "neutral", "quote": "Mainly gRPC for cross-service communication", "excerpt": "Mainly gRPC for cross-service communication, k8s, and all the workflows on Temporal with the agent logic as activities. For tracking and adding guardrails across many agents and having caps (e.g. the same agent type can do at most X of this action in 24 hours) I have created https://actera.dev/", "context": "", "use_case": "Cross-service communication", "switched_from": "", "story": "The Agent SDK"}, {"id": 795998064, "item_id": 49749879, "url": "https://news.ycombinator.com/item?id=49749879", "by": "hxtk", "date": "2026-09-18", "stance": "neutral", "quote": "In gRPC, the statuses it returns in trailers can include arbitrary details", "excerpt": "In gRPC, the statuses it returns in trailers can include arbitrary details, and Google has a well-known proto for common ones in `google/rpc/error_details.proto`. One such detail is RetryInfo [1]. When we implement retries where I work, the general rule is that if a request is suitable for retry, it should include the RetryInfo in the error status and use it as the base delay for the exponential backoff. The absence ", "context": "works at a company with gRPC retry interceptors", "use_case": "service RPC retries", "switched_from": "", "story": "How Uber Protects Against Retry Storms"}, {"id": 789268241, "item_id": 49329265, "url": "https://news.ycombinator.com/item?id=49329265", "by": "PufPufPuf", "date": "2026-08-17", "stance": "warn", "quote": "it's still a nightmare trying to integrate with gRPC from something remotely modern", "excerpt": "The promise of Protobuf/gRPC for seamless communication across tech stacks just wasn't delivered. Third party projects like Buf or BetterProto for Python try their best but it's still a nightmare trying to integrate with gRPC from something remotely modern, like Python with uv and async/await. Plus there's a lot of little pains like not being human-readable, always requiring HTTP/2 and thus HTTPS, and so on. JSON isn", "context": "", "use_case": "RPC", "switched_from": "", "story": "Protobuf has LSP support. You're welcome"}, {"id": 787664771, "item_id": 49229048, "url": "https://news.ycombinator.com/item?id=49229048", "by": "mathewsclint28", "date": "2026-08-08", "stance": "neutral", "quote": "client-streaming gRPC", "excerpt": "Location: Kochi, India Remote: Yes (only) Willing to relocate: Yes - EU/UK for the right team Technologies: Go, Kafka, gRPC/Protobuf, OCPP 1.6/2.0.1, PostgreSQL, MongoDB, Redis, Docker, AWS, NestJS/Node, TypeScript, Python, Datadog R\u00e9sum\u00e9/CV: https://clint-mathews.github.io/CLINT-MATHEWS.pdf Email: mathewsclint28@gmail.com Backend lead on Ford Pro's EV charging platform \u2014 8,200 connected chargers, 6M+ telemetry messa", "context": "Backend lead on Ford Pro's EV charging platform", "use_case": "", "switched_from": "", "story": "Ask HN: Who wants to be hired? (August 2026)"}, {"id": 785284560, "item_id": 49080285, "url": "https://news.ycombinator.com/item?id=49080285", "by": "flohofwoe", "date": "2026-07-27", "stance": "warn", "quote": "it doesn't, instead it needs to run inside mings", "excerpt": "> so then my glib question: what is the purpose of this project? The whole point is to massively simplify integrating those libraries into Zig projects by explicitly not having to deal with external build systems or compiler toolchains. > Is the grpc makefile no bueno? Does it work out-of-the-box on Windows? That's usually the first question when encountering a Makefile (and just looking at the first lines of the Mak", "context": "", "use_case": "", "switched_from": "", "story": "C/C++ projects packaged for Zig"}, {"id": 774853808, "item_id": 48428363, "url": "https://news.ycombinator.com/item?id=48428363", "by": "pjmlp", "date": "2026-06-06", "stance": "neutral", "quote": "not yet supported by gRPC", "excerpt": "Apparently the gRPC improvements to use shared memory when client and server are on the same, something common on network RPC not yet supported by gRPC, was done by Mark Russinovich, with agents. https://github.com/markrussinovich/shmem It is one example described on one of his AI talks at BUILD. If the PR gets accepted, here is your AI contribution to core technology.", "context": "", "use_case": "", "switched_from": "", "story": "WoofWare.PawPrint, a Deterministic .NET Runtime"}, {"id": 773881462, "item_id": 48367591, "url": "https://news.ycombinator.com/item?id=48367591", "by": "emreterzi", "date": "2026-06-02", "stance": "neutral", "quote": "microservices price tracker with Kafka and gRPC", "excerpt": "Location: Samsun, Turkey (UTC+3) Remote: Yes Willing to relocate: Yes Technologies: Go, Node.js, TypeScript, React, Next.js, PostgreSQL, Redis, Kafka, Docker, AWS, Expo R\u00e9sum\u00e9/CV: https://emrecanterzi.com/cv.pdf Email: terzi.6112@gmail.com Full-stack engineer leaning backend. Built a Go TCP proxy that defeats Turkish ISP deep packet inspection via custom TLS fragmentation (open source). Also built a microservices pri", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who wants to be hired? (June 2026)"}, {"id": 769031744, "item_id": 48064484, "url": "https://news.ycombinator.com/item?id=48064484", "by": "fastest963", "date": "2026-05-08", "stance": "warn", "quote": "an issue with gRPC which results in thousands of connections and constant connection churn", "excerpt": "For the last 3 months I've been trying to get support from Google/gRPC/GCS teams to fix an issue with gRPC which results in thousands of connections and constant connection churn. The underlying issue appears to be a constant backend priority rotation with the endpoints for the client to connect to. The gRPC team seems unwilling to address why the gRPC client is opening several hundred connections when I'm not even u", "context": "", "use_case": "", "switched_from": "", "story": "Unbounded connection churn issue in gRPC-go"}, {"id": 765147344, "item_id": 47821709, "url": "https://news.ycombinator.com/item?id=47821709", "by": "riwsky", "date": "2026-04-18", "stance": "compare", "quote": "", "excerpt": "My gRPC point is that it already gives you a language for describing interfaces and support for generating client types from it, and already abstracts the connection management[1]. If OBI just generated a gRPC ClientConn implementation to map the Invoke calls to eg REST paths, it\u2019d inherit the large existing gRPC client ecosystem. That ClientConn interface can already technically capture what OBI calls binding execut", "context": "", "use_case": "RPC framework", "switched_from": "", "story": "One Interface, Every Protocol"}, {"id": 764664049, "item_id": 47791503, "url": "https://news.ycombinator.com/item?id=47791503", "by": "clevengermatt", "date": "2026-04-16", "stance": "warn", "quote": "You're right about the gRPC fidelity issues though.", "excerpt": "The spec isn't hiding JSON Schema. There's a section on it with the dialect URI and the subset of keywords OBI uses: https://openbindings.com/spec#json-schema-dialect That said, if it feels buried, I'll look at surfacing it more clearly. You're right about the gRPC fidelity issues though. int64 precision, oneof vs oneOf semantics, enum value mapping, and well-known types all need careful handling when binding to Prot", "context": "", "use_case": "", "switched_from": "", "story": "One Interface, Every Protocol"}, {"id": 757635650, "item_id": 47352228, "url": "https://news.ycombinator.com/item?id=47352228", "by": "NexusCore", "date": "2026-03-12", "stance": "warn", "quote": "Whether it\u2019s Pusher, Pub/Sub, or even high-tuned gRPC, the 'Serialization Tax' always wins.", "excerpt": "\"I finally hit the limit with existing broadcast services. Whether it\u2019s Pusher, Pub/Sub, or even high-tuned gRPC, the 'Serialization Tax' always wins. When you\u2019re dealing with high-frequency telemetry and real-time audio data, parsing JSON or even Protobuf becomes the primary bottleneck. So I built NEXUS.Pulse. Instead of trying to optimize existing protocols, I moved the entire pipeline to a Binary-First architectur", "context": "", "use_case": "data broadcast", "switched_from": "", "story": "NEXUS.Pulse: A Binary-First Broadcast Service. 1M Entities Streamed in 11.8\u00b5s"}, {"id": 757595507, "item_id": 47349719, "url": "https://news.ycombinator.com/item?id=47349719", "by": "pseudocomposer", "date": "2026-03-12", "stance": "neutral", "quote": "Rust web+gRPC server", "excerpt": "This is what I built Jonline for. Haven\u2019t maintained it for a while, but it\u2019s quite functional as-is. Basically a very vanilla Twitter/Reddit-with-first-class-calendar-events, standard Rust web+gRPC server on Postgres DB, React web UI, and no encryption other than HTTPS/TLS. No server-to-server communication, just username/password auth. Super easy to understand APIs (https://jonline.io/docs). (I do need to build bet", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: s@: decentralized social networking over static sites"}, {"id": 754125552, "item_id": 47132847, "url": "https://news.ycombinator.com/item?id=47132847", "by": "snowhale", "date": "2026-02-23", "stance": "neutral", "quote": "servers can send SERVING/NOT_SERVING signals proactively when they want to drain", "excerpt": "gRPC's health checking protocol (https://github.com/grpc/grpc/blob/master/doc/health-checking.md) is roughly this -- servers expose a standard health streaming endpoint the LB can subscribe to, and servers can send SERVING/NOT_SERVING signals proactively when they want to drain. not universally adopted and HTTP/1 has nothing equivalent, but the spec exists for the server-initiated signaling direction.", "context": "", "use_case": "", "switched_from": "", "story": "Why Your Load Balancer Still Sends Traffic to Dead Backends"}, {"id": 752200160, "item_id": 47012510, "url": "https://news.ycombinator.com/item?id=47012510", "by": "whs", "date": "2026-02-13", "stance": "warn", "quote": "gRPC's xDS client is not always bugs-free", "excerpt": "I wrote gRPC xDS server for Kubernetes that is configuration-free. Basically just load xDS client library into your code, then use xds:///servicename.namespace (unlike DNS, namespace is always required). It should be as lightweight and scales in similar way to the cluster DNS. My company run this exact code in production since it was created in 2022. We probably have several times more than 1000 rps gRPC requests run", "context": "", "use_case": "", "switched_from": "", "story": "gRPC: From service definition to wire format"}, {"id": 752161361, "item_id": 47010085, "url": "https://news.ycombinator.com/item?id=47010085", "by": "dewey", "date": "2026-02-13", "stance": "recommend", "quote": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build.", "excerpt": "I've only enjoyed using Protobuf + gRPC after we've started using https://buf.build. Before that it was always a pain with Makefiles building obscure commands, then developers having different versions of the Protobuf compiler installed and all kinds of paper cuts like that. Now it's just \"buf generate\", every developer has the exact same settings defined in the repo and on the frontend side we are just importing the", "context": "", "use_case": "", "switched_from": "", "story": "gRPC: From service definition to wire format"}, {"id": 752159089, "item_id": 47009943, "url": "https://news.ycombinator.com/item?id=47009943", "by": "kjuulh", "date": "2026-02-13", "stance": "compare", "quote": "it can interoperate with normal grpc servers", "excerpt": "I think connect-rpc[0] strikes a good balance between normal http apis, and gRPC. It allows protobuf as json. So you could think of it as an opinionated http api spec. A health check would be just a call to an url /something.v1.MyService/MyMethod -d { \"input\": \"something }. it works really well, and the tooling is pretty good, though it isn't that widely supported yet. Rust for one doesn't have an implementation. But", "context": "", "use_case": "", "switched_from": "", "story": "gRPC: From service definition to wire format"}, {"id": 750580244, "item_id": 46911265, "url": "https://news.ycombinator.com/item?id=46911265", "by": "Ayaz_Saifi", "date": "2026-02-06", "stance": "neutral", "quote": "with Kubernetes, gRPC, Prometheus/Grafana, PostgreSQL/Redis, and Terraform", "excerpt": "Ayaz Role: Software Engineer / Backend / Full-Stack Location: India (open to remote & relocation) Experience: Java, Spring Boot, Kafka, Microservices, Cloud, ML I\u2019m a Computer Science undergrad (AI/ML specialization, graduating 2026) with hands-on experience building distributed systems and backend services. At JPMorgan Chase (virtual internship), I built a real-time financial transaction system using Spring Boot, Ka", "context": "CS undergrad (AI/ML), graduating 2026", "use_case": "E-commerce microservices platform", "switched_from": "", "story": "Ask HN: Who is hiring? (February 2026)"}, {"id": 750553162, "item_id": 46909572, "url": "https://news.ycombinator.com/item?id=46909572", "by": "Ayaz_Saifi", "date": "2026-02-05", "stance": "neutral", "quote": "gRPC", "excerpt": "Location: India Remote: Yes (actively seeking remote opportunities) Willing to relocate: Yes (for the right opportunity) Technologies: Java, Spring Boot, Kafka, Microservices, Kubernetes, Docker, Python, PyTorch, TensorFlow, OpenCV, React.js, JavaScript, SQL/NoSQL (MongoDB, H2), REST APIs, gRPC, Prometheus/Grafana, Terraform, Git, Tableau R\u00e9sum\u00e9/CV: https://drive.google.com/file/d/1zKHm7niY0Qp_jY614Cz_6AqRA-zeSQAR/vi", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: Who wants to be hired? (February 2026)"}, {"id": 749811864, "item_id": 46863241, "url": "https://news.ycombinator.com/item?id=46863241", "by": "antonmedv", "date": "2026-02-02", "stance": "neutral", "quote": "gRPC/HTTP/Kafka/WebSocket", "excerpt": "Location: Costa Rica(UTC-6), work with any American TZ Remote: Yes, remote only Willing to relocate: No Technologies: Python (10+ yrs), FastAPI, Django, gRPC/HTTP/Kafka/WebSocket, Flutter (mobile), React/TypeScript (Chrome extensions), Kubernetes & cloud deployments, Postgres, Redis, R\u00e9sum\u00e9/CV: https://drive.google.com/file/d/1QI1aY7MTu58huMTC8NbOP7QudY07tJxE/view LinkedIn: https://www.linkedin.com/in/antonpythonback", "context": "Senior backend engineer", "use_case": "stated professional skill", "switched_from": "", "story": "Ask HN: Who wants to be hired? (February 2026)"}, {"id": 748304800, "item_id": 46769050, "url": "https://news.ycombinator.com/item?id=46769050", "by": "matttproud", "date": "2026-01-26", "stance": "recommend", "quote": "gRPC forces you to confront them early and explicitly IMO, which is not a bad thing.", "excerpt": "Method signatures in gRPC present a pandora's box of questions: https://matttproud.com/blog/posts/grpc-method-discipline.html. The questions aren't unique to gRPC, however; gRPC forces you to confront them early and explicitly IMO, which is not a bad thing.", "context": "", "use_case": "RPC API design", "switched_from": "", "story": "Transfering Files with gRPC"}, {"id": 748285264, "item_id": 46767829, "url": "https://news.ycombinator.com/item?id=46767829", "by": "augusteo", "date": "2026-01-26", "stance": "compare", "quote": "Having protobufs for that was genuinely useful. But trying to pipe multi-gigabyte files through gRPC streams was painful.", "excerpt": "Building on sluongng's point about schema evolution: we ended up in a weird middle ground on a project where we used gRPC for metadata and presigned S3 URLs for the actual bytes. The metadata schema changed constantly (new compression formats, different checksum algorithms, retry policies). Having protobufs for that was genuinely useful. But trying to pipe multi-gigabyte files through gRPC streams was painful. Memory", "context": "", "use_case": "metadata service", "switched_from": "", "story": "Transfering Files with gRPC"}, {"id": 748262752, "item_id": 46766422, "url": "https://news.ycombinator.com/item?id=46766422", "by": "ithkuil", "date": "2026-01-26", "stance": "recommend", "quote": "I like implementing this standard gRPC interface", "excerpt": "I like implementing this standard gRPC interface (of I already have a gRPC based project) because it allows me to reuse a troubleshooting utility I wrote that uses it: https://github.com/mkmik/byter", "context": "", "use_case": "Remote procedure calls", "switched_from": "", "story": "Transfering Files with gRPC"}, {"id": 747996832, "item_id": 46749802, "url": "https://news.ycombinator.com/item?id=46749802", "by": "weitendorf", "date": "2026-01-24", "stance": "recommend", "quote": "I think gRPC and using it with json is awesome", "excerpt": "I generally agree although I think gRPC and using it with json is awesome, it's just that like with most of these tools, the investment in setup/tooling/integrating them into your work has to be worth what you get out of them. I actually used to do FaaS at GCP and now through my startup am working on a few projects for cloud services, tooling around them, and composable/linkable FaaS if you're interested! A lot of th", "context": "", "use_case": "RPC services with JSON", "switched_from": "", "story": "Microservices for the Benefits, Not the Hustle"}, {"id": 747741633, "item_id": 46733852, "url": "https://news.ycombinator.com/item?id=46733852", "by": "shikhar", "date": "2026-01-23", "stance": "warn", "quote": "comes with bloat, is a bit of a mess in Python", "excerpt": "We wanted S2 to be one API. Started out with gRPC, added REST - then realized REST is what is absolutely essential and what most folks care about. gRPC did give us bi-directional streaming for append/read sessions, so we added that as an optional enhancement to the corresponding POST/GET data plane endpoints (the S2S \"S2-Session\" spec I linked to above). A nice side win is that the stream resource is known from the r", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: S2-lite, an open source Stream Store"}, {"id": 745273889, "item_id": 46579618, "url": "https://news.ycombinator.com/item?id=46579618", "by": "bloppe", "date": "2026-01-11", "stance": "neutral", "quote": "networks wasm components using gRPC", "excerpt": "I've been experimenting with what a serverless cloud platform would look like that networks wasm components using gRPC: https://github.com/vimana-cloud/vimana", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (January 2026)"}, {"id": 735542496, "item_id": 45971406, "url": "https://news.ycombinator.com/item?id=45971406", "by": "goldenCeasar", "date": "2025-11-18", "stance": "recommend", "quote": "", "excerpt": "On this \u201ctypes first across languages\u201d, I\u2019ve been hacking on something in that vein called Kumi (typed calculation schemas compiled to Ruby/JS). Tiny demo here https://kumi-play-web.fly.dev", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Guts \u2013 convert Golang types to TypeScript"}, {"id": 733139178, "item_id": 45821198, "url": "https://news.ycombinator.com/item?id=45821198", "by": "avoivo", "date": "2025-11-05", "stance": "neutral", "quote": "Tech stack: Go, gRPC, KurrentDB", "excerpt": "For the past few months, I\u2019ve been working on a personal project that I really enjoyed \u2014 a cloud-native food delivery platform built from scratch. BACKEND: Go microservices for authentication, restaurant management, orders, and live delivery tracking, built around an event-driven architecture using KurrentDB. FRONTEND: React + TypeScript + TailwindCSS, featuring real-time updates, a simple interface, and smooth order", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What are you working on?"}]}