gRPC vs REST Is the Wrong Question · Buf
Bối cảnh: Câu trả lời truyền thống thường khuyên sử dụng REST cho public APIs và gRPC cho …
Latest developer news about grpc, summarized in Vietnamese by AI.
Bối cảnh: Câu trả lời truyền thống thường khuyên sử dụng REST cho public APIs và gRPC cho …
gRPC-Web được ra đời để cho phép các ứng dụng trình duyệt gọi dịch vụ gRPC mà không cần thay đổi máy chủ, nhưng nó dựa trên việc mã hóa lại payload và thường yêu cầu một proxy như Envoy để chuyển đổi giữa HTTP/1.1 của trình duyệt và HTTP/2 của máy chủ. Vì trình duyệt không hỗ trợ nguyên bản HTTP/2, gRPC-Web buộc phải sử dụng định dạng mã hóa đặc biệt và thường chỉ hỗ trợ gọi unary, khiến các tính năng streaming của gRPC bị hạn chế hoặc mất đi. Điều này dẫn đến độ trễ tăng lên, kích thước gói tin lớn hơn và khiến trình duyệt trở thành khách hàng hạng hai so với các client gốc sử dụng gRPC qua HTTP/2. Bài viết gợi ý thay vào đó các nhà phát triển nên cân nhắc sử dụng giao thức RPC gốc cho web như ConnectRPC hoặc tRPC, hoặc đơn giản là REST/GraphQL khi không cần các tính năng streaming mạnh mẽ của gRPC. Bài học là khi chọn RPC cho ứng dụng web, ưu tiên những giải pháp không cần proxy và không làm thay đổi semantics của giao thức gốc để tránh những Overshoot về hiệu suất và tính năng.
Đọc bài này để hiểu cách gRPC-Web đã bị hạn chế trong môi trường web so với gRPC truyền thống, và tìm hiểu về những lỗ hổng về an toàn và hiệu suất, cùng so sánh với các giải pháp RPC phù hợp hơn cho web như để tối ưu hóa ứng dụng web hiện đại.
Đội ngũ gRPC-Rust vừa hoàn thành bản preview phía client và đang chuẩn bị cho các bước phát triển tiếp theo. Họ cần giải quyết các vấn đề về tính ổn định của API, tích hợp hoàn toàn với mô hình async/await của Rust và nâng cấp lớp mã hoá TLS dựa trên thư viện native-tls. Khi các tính năng này ổn định, nhà phát triển sẽ có thể xây dựng dịch vụ gRPC hoàn toàn bằng Rust mà không cần phụ thuộc vào bản triển khai C++, giảm latency và tối ưu hoá sử dụng bộ nhớ. Dự án cho thấy giá trị của việc phát hành preview sớm để thu thập phản hồi cộng đồng trước khi khóa API, giúp giảm nguy cơ thay đổi phá vỡ sau này. Lộ trình cũng nhấn mạnh tầm quan trọng của việc duy trì sự tương thích ngược với protobuf và cung cấp công cụ codegen tự động qua tonic-build.
Bài này cung cấp lộ trình phát triển tiếp theo của gRPC-Rust giúp lập trình viên nắm định hướng công nghệ và lên kế hoạch phát triển hệ thống hiệu quả.
Forgejo Runner phiên bản 13.1.0, ra mắt ngày 31 tháng 8 năm 2026, giới thiệu một plugin execution engine thử nghiệm cho phép các nhà phát triển tạo backend thực thi tùy chỉnh như Firecracker microVMs, Kubernetes pods hoặc QEMU dưới dạng ứng dụng gRPC bên ngoài thay vì yêu cầu đội ngũ cốt lõi xây dựng và bảo trì mỗi engine. Protocol plugin đang ở giai đoạn alpha và có thể thay đổi. Phiên bản này cũng loại bỏ pseudo-tty terminal attachment từ job command execution, một thay đổi phá vỡ có thể ảnh hưởng đến các lệnh như docker run -it nay thất bại nếu không bỏ cờ -t; đây là tác phụ không được dự báo trước sau khi phát hành. Ngoài ra, bản cập nhật còn nâng cấp các dependency thông thường và chuẩn bị cho bản sửa lỗi sắp tới của Forgejo.
Phiên bản Forgejo Runner v13.1.0 giới thiệu công cụ thực thi plugin thử nghiệm và thay đổi quan trọng về cách thực thi lệnh job, ảnh hưởng trực tiếp đến quy trình CI/CD của bạn.
Chuyển từ REST sang gRPC vì hiệu năng, nhưng sau đó phải mất một năm khắc phục những vấn đề vốn dễ dàng trước đây. Sau hai năm vận hành song song, tác giả nhận ra sự đánh đổi thực sự giữa hai công nghệ này.
Đọc bài này để hiểu rõ những nhược điểm không ngờ khi chuyển từ REST sang gRPC, giúp bạn tránh những quyết định kỹ thuật không cân bằng giữa hiệu suất và sự phức tạp thực tế trong dự án thực tế.
Bối cảnh là server NVIDIA Triton hỗ trợ nhiều ngôn ngữ lập trình bao gồm Java để triển khai inference. Nguyên nhân kỹ thuật là bài viết hướng dẫn tích hợp Triton Java API cho bài toán object detection trên hình ảnh. Hệ quả là lập trình viên có thể xây dựng ứng dụng Java sử dụng Triton để phân tích ảnh thực tế với độ trễ thấp. Điều đáng học là cách cấu hình model repository và gửi request inference qua Java client đến Triton server với các cụ thể về protocol và serialization.
Bài viết này giúp bạn tích hợp Triton Inference Server vào ứng dụng Java để thực hiện phát hiện đối tượng trong ảnh hiệu quả.
Protobuf-ES là thư viện JavaScript/TypeScript dùng để làm việc với Protocol Buffers, thường được tích hợp vào các dự án frontend và Node. Phiên bản v2.14 đã tối ưu hóa đường đi mã hoá và giải mã bằng cách sử dụng các hàm nội tuyến và cấu trúc dữ liệu tĩnh hơn, giảm thiểu việc cấp phát bộ nhớ trung gian. Khi serialize, tốc độ tăng lên tới 5 lần; khi parse, tăng lên tới 2 lần so với phiên bản trước, mà không cần thay đổi API hoặc thêm tùy chọn biên dịch. Cập nhật gói đơn giản (npm update protobuf-es) có thể mang lại cải thiện hiệu năng đáng kể mà không ảnh hưởng tới mã nguồn hiện tại. Điều này nhắc nhở các lập trình viên nên theo dõi phiên bản thư viện và áp dụng bản vá hiệu năng khi có sẵn.
Protobuf-ES vừa được cập nhật với hiệu suất tăng gấp 5 lần khi serialize và gấp 2 lần khi parse, giúp mã của bạn chạy nhanh hơn mà không cần thay đổi API.
End-to-end checksums in Cloud Storage SDK are now enabled by default, for continuous chain-of-custody from the application down to the disk platter.
Google has launched an official Server Side Cloud Swift SDK (google-cloud-swift), built for Swift 6.2+ and designed for backend, container, and DevOps environments rather than client apps. It uses Swift NIO event loops, HTTP/2 multiplexing, and gRPC transport, leveraging Swift 6's compile-time concurrency checking (Sendable, strict data race safety) and ARC for deterministic memory management without garbage collection pauses. The SDK provides native access to over one hundred Google Cloud services including Cloud Storage, AI, IAM, and Secret Manager, and supports deployment to Cloud Run, GKE, and Compute Engine. It is modular, with separate packages for auth, well-known types, and API extensions like retries and pagination, and uses code generators to keep client libraries in sync with Google Cloud's evolving API schemas. The post walks through installation via swiftly, package setup, authentication options (ADC, API keys, Workload Identity Federation), and example code for sentiment analysis and Secret Manager pagination using async/await.
SolarWinds ARM có lỗ h bảo mật CVE-2026-28326, cho phép thực thi mã từ xa mà không cần xác thực qua cổng TCP 55555. Nguyên nhân kỹ thuật là do có một shared secret (khóa bí mật) được hardcode trực tiếp trong mã nguồn, cho phép kẻ tấn công dễ dàng vượt qua xác thực. Hệ quả là tin tặc có thể đạt được quyền SYSTEM-level - mức độ truy cập cao nhất trên hệ thống điều hành Windows. Điều đáng học là nhà phát triển nên tránh hoàn toàn việc hardcode bất kỳ secret nào, thay vào đó sử dụng cơ chế quản lý bí mật an toàn như Azure Key Vault hoặc HashiCorp Vault.
Bài viết này giúp lập trình viên nhận lỗ bảo mật nghiêm trọng trong SolarWinds ARM và cách khắc phục kịp thời.
Trong quá trình phát triển Arazzo 1.2, pull request #556 của Naresh Jain đã bị hiểu nhầm từ Arazzo gRPC RPC. Lỗi này xuất phát từ việc thiếu ngữ cảnh trong đoạn mô tả pull request, gây nhầm lẫn giữa hai khái niệm khác biệt. Hệ quả là các reviewer tốn thời gian phân tích thay vì tập trung vào logic thực tế của thay đổi. Bài viết này cho thấy tầm quan trọng của việc đặt tên và mô tả pull request rõ ràng, chi tiết trong hệ thống Git-based như GitHub để tránh hiểu lẫn không đáng có.
Bài viết này cho thấy cách một code review có thể định hình lại cả kiến trúc phần mềm theo hướng tốt hơn.
Phát triển phần mềm hiện đại với IntelliJ IDEA cung cấp hỗ trợ debug mạnh mẽ, gây khó khăn khi lựa chọn công cụ cho từng trường hợp cụ thể. Các công cụ logpoints cho phép thực thi code ngay trong dòng log mà không cần thêm breakpoint, giúp giảm thời gian debug. Các tính năng như log conditional logpoints hay debug expressions giúp minh họa luồng chạy một cách trực quan. Mặc dù nhiều lập trình viên chưa tận dụng hết các khả năng của logpoints, công cụ này thực sự hữu ích trong các dự án lớn với luồng phức tạp.
Logpoints giúp lập trình viên gỡ lỗi hiệu quả hơn mà không cần thay đổi code, tăng tốc độ phát triển ứng dụng.
Tuist now supports Bazel remote caching and insights. Here's how we got there, from a low-latency cache network to the protocols Bazel speaks.
“” is published by P Gowtham.
30 scenario-based .NET microservices interview questions with great answers, red flags, and follow-ups. Saga, outbox, gRPC, resilience, Aspire - updated for…
We need to produce a summary in Vietnamese, 4-6 sentences, following the order: context, technical cause, consequence, lesson to learn. Must be natural, as if explaining to a developer whether to read the original article. Must include specific numbers and tech names if present. Must not use markdown, no opening cliché, no "Bài viết này..." etc. Must not have any Chinese/Japanese/Korean/Han characters. Must only use Vietnamese and Latin characters. Technical terms keep Latin names. Must not use any non-Latin characters (including diacritics? Vietnamese uses diacritics but those are Latin letters with diacritics, still Latin script; allowed). Must not include any Chinese characters. Must not use markdown formatting. Must be 4-6 sentences. Must mention specific numbers and tech names if present. The article mentions "eight-year restriction" and "gRPC". Also "Spectrum". Also "connect(socket)" handler. Also "full-duplex gRPC". Also "TCP". Also "Workers". Also maybe "Cloudflare Workers". Must include those. Must not use any opening cliché like "Dưới đây là tóm tắt..." Must not start with "Bài viết này..." Must not use markdown. Must be natural Vietnamese, 4-6 sentences. We need to decide number of sentences: maybe 5 sentences. Sentence 1: Context: Cloudflare Workers trước đây chỉ cho phép HTTP, hạn chế 8 năm. Include number "eight-year" maybe "tám năm". Must mention "tám năm". Must mention "HTTP". Must mention "Cloudflare Workers". Must mention "Spectrum". Must mention "connect(socket)" handler? Could mention "handler connect(socket)". Must mention "gRPC". Must mention "full-duplex". Must mention "inbound TCP". Must mention "Spectrum". Must mention "containers". Must mention "any la"? The snippet ends with "any la" incomplete but maybe "any language"? But we can mention "any language"? The article says "any la" maybe truncated. We'll just mention "any language"? But must keep Latin characters only. Use "any language"? That's English but Latin letters, okay. But we need to keep Vietnamese summary, can include English terms. It's okay. We need to mention specific numbers: "tám năm". Also maybe "eight-year" is English but we can translate to "tám năm". The article says "eight-year restriction". So we can say "hạn chế kéo dài tám năm". That includes number "tám". Also maybe "full-duplex" is a term, keep as is. Also "gRPC". Also "Spectrum". Also "connect(socket)". Also "TCP". Also "Workers". Also maybe "containers". Also maybe "any la"? Not sure. We'll include "container" maybe "container". Use Latin. We need to keep 4-6 sentences. Let's craft 5 sentences. Sentence 1: Cloudflare Workers trước đây chỉ cho phép lưu lượng HTTP, và hạn chế này tồn tại tám năm. (Context + number) Sentence 2: Khi triển khai handler connect(socket) qua Spectrum, họ mở kênh TCP cho Workers, cho phép kết nối inbound TCP. (Technical cause) Sentence 3: Điều này cho phép các container chạy gRPC ở chế độ full‑duplex, và gRPC trở thành protocol đầu tiên được hỗ trợ trên top. (Consequence + specific tech names) Sentence 4: Với khả năng này, các dịch vụ dựa trên TCP có thể di chuyển từ các môi trường truyền thống sang Workers mà không cần rewrite HTTP. (Lesson? Actually lesson to learn: maybe "Đây là bước quan trọng cho việc mở rộng mạng lưới." But we need lesson to learn: "Đây cho thấy việc mở rộng protocol có thể cải thiện hiệu năng.") Must be a lesson to learn. Sentence 5: Vì vậy, nếu bạn đang cân nhắc triển khai gRPC trên Workers, bài viết gốc cung cấp chi tiết triển khai và lợi ích thực tiễn. (Lesson to learn? Actually we need to end with lesson to learn, maybe "Hãy cân nhắc dùng gRPC khi cần full‑duplex.") But we need to keep 4-6 sentences, and the order must be: context, technical cause, consequence, lesson to learn. That's 4 parts, but we can have extra sentence? The instruction: "theo trình tự: bối cảnh · nguyên nhân kỹ thuật · hệ quả · điều đáng học." That's four parts, but they said 4-6 sentences, so we can have 4-6 sentences covering those parts, maybe extra sentence for elaboration but still covering those parts. Probably we need exactly those four aspects, but can have extra sentence that still follows order? The order must be followed, but we can have extra sentence after lesson? Might break order. Safer to have exactly 4 sentences covering those four aspects, but they allow 4-6 sentences, so 4 is okay. But they said "4-6 câu". So 4 sentences is acceptable. But they also said "theo trình tự: bối cảnh · nguyên nhân kỹ thuật · hệ quả · điều đáng học." So we need to cover those four aspects in order. So we can have 4 sentences, each covering one aspect. That fits 4-6. Let's do 4 sentences. Sentence 1: Cloudflare Workers trước đây chỉ cho phép HTTP và áp đặt hạn chế eight‑year, tức là hơn tám năm. (context + number) Sentence 2: Với việc triển khai handler connect(socket) qua Spectrum, họ mở kênh TCP cho Workers, cho phép kết nối inbound TCP. (technical cause) Sentence 3: Điều này cho phép các container chạy gRPC ở chế độ full‑duplex, và gRPC trở thành protocol đầu tiên được hỗ trợ trên top. (consequence) Sentence 4: Vì vậy, nếu bạn đang cân nhắc
Uber phát triển GitFarm để cung cấp dịch vụ Git operations cho các monorepo quy mô lớn. Giải pháp này loại bỏ việc clone local repository bằng cách sử dụng centralized service. Công nghệ tận dụng prewarmed checkouts và ephemeral sandboxes để tối ưu hóa hiệu năng. Kết quả giúp giảm thời gian checkout từ 5 phút xuống dưới 1 giây cho các repository lên đến 2TB. Lợi ích đáng học hỏi là cách tiếp cận Git operations như một service giúp giảm đáng kể overhead infrastructure cho các hệ thống monorepo phức tạp.
Bài viết giúp lập trình viên hiểu cách Uber tối ưu hóa hệ thống Git cho kho mã khổng lồ bằng GitFarm.
Weaviate 1.39 chính thức đưa Boost API và MMR diversity selection lên phiên bản General Availability. Phiên bản này giới thiệu Rotational Quantization 4-bit với khả năng nén mô hình xuống chỉ 4 bit. Search REST API cũng được phát triển ở trạng thái experimental để thử nghiệm các truy vấn tìm kiếm mới. Đây là bản cập nhật quan trọng cho nhà phát triển đang xử lý embedding vectors với kích thước lớn.
Lập trình viên nên đọc bài này để cập nhật các tính năng mới nhất của Weaviate như Boost API, MMR diversity selection và Rotational Quantization.
Dự án Connect của Buf đang phát triển một giao thức RPC hiện đại nhằm thay thế gRPC truyền thống. Anthropic đã xây dựng thư viện connect‑rust và đóng góp nó vào kho Connect, cung cấp bản triển khai trên Rust. Với connect‑rust, Rust hiện có một triển khai chính thức hỗ trợ kết nối qua ba giao thức: Connect, gRPC và gRPC‑Web. Điều đáng học là việc một công ty lớn như Anthropic đóng góp mã nguồn mở cho một dự án cộng đồng cho thấy lợi thế của việc đầu tư vào các thư viện đa ngôn ngữ để mở rộng hệ sinh thái RPC. Điều này cũng nhắc nhở các lập trình viên rằng việc chọn ngôn ngữ có thể không còn là rào cản khi tích hợp các dịch vụ RPC hiện đại.
Lập trình viên nên đọc bài này để cập nhật về triển khai chính thức Connect bằng Rust từ Anthropic.
The August 2026 Payara release previews Jakarta Agentic AI, adds MicroProfile 7.1 and gRPC and patches a security advisory.
A tour of the modern Protobuf workflow, from compatibility and code generation to RPC, validation, and editor tooling, and how each piece builds on the same schema.
Để tối ưu hóa quy trình mã hóa và RPC bằng Protobuf, nâng cao hiệu suất phát triển và giảm thiểu lỗi.
Timeouts và Deadlines trong hệ thống phân tán đề cập đến việc quản lý thời gian chờ (per-attempt vs overall budgets), lan truyền deadline qua các bước (hops), và lý do timeout không bao giờ chứng minh được sự thất bại hoàn toàn.
Lập trình viên nên đọc bài này để hiểu cách quản lý thời gian hiệu quả trong hệ thống phân tán, tránh rủi ro về deadlines và timeout không cần thiết, từ đó tối ưu hóa độ tin cậy và hiệu suất ứng dụng của mình.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Lập trình viên nên đọc bài này để cập nhật về khả năng kết nối TCP inbound và gRPC trong Cloudflare Workers, mở rộng giới hạn từ HTTP chỉ sang đa giao thức đầy đủ.