本文永久链接 – https://tonybai.com/2025/08/29/good-api-design 大家好,我是Tony Bai。 在解读《Everything I know about good system design》一文时,我们曾提炼出一个核心观点:“无聊即可靠”。这个看似反直觉的法则,在追求创新与复杂的软件工程世界里,如同一股清流。现在,这个“无聊”哲学将从宏观的系统设计,延伸至微观但至关重要的领域——API设计。 Sean Goedecke在其后续力作《Every...| Tony Bai
Go applications can implement graceful shutdown by handling termination signals (SIGTERM, SIGINT) via os/signal or signal.NotifyContext. Shutdown must complete within a specified timeout (e.g., Kubernetes’ terminationGracePeriodSeconds)…| VictoriaMetrics
Protobufs offer a structured approach to data definition, but testing gRPC services built with them can be a hurdle. By leveraging FauxRPC and CEL, you can accelerate development cycles, enhance test coverage, and ensure the reliability of your microservices. Scaling Protobuf Testing gRPC has emerged as a powerful framework for building efficient and scalable microservices, enabling seamless communication across diverse technologies. Its language-agnostic nature, powered by Protobuf, allows s...| kmcd.dev
A deep dive into schemas and specifications, how can they be used for schema-based contract testing and their respective benefits and tradeoffs| Pactflow Contract Testing Platform
Six years ago, I wrote "Is GraphQL The Future?" We can now confidently say that the answer is "no", but I'm still very proud of that piece, and I think I was right about a lot of other things. What happened to GraphQL?| Never Down, Always Up
Looking into optimizing one of my APIs, I recently stumbled upon the following resource: Common design patterns. This contains a lot of insights on how to design proto files in order to make gRPC APIs more idiomatic or more efficient. Within this document, I found the pagination part interesting and decided to write an article on how to implement it.| clement-jean.github.io
Recently, I've been looking for a good alternative to Traefik as Reverse Proxy for gRPC services. Traefik has great support for gRPC and other common features, but Envoy comes with Protobuf-backed configuration and even greater support for gRPC services. In the article, I want to show how you can make Envoy use your custom authorization logic before redirecting (or not) the request to other services.| clement-jean.github.io
Meaningful names help make code searchable so think twice before naming everything 'entity'| kmcd.dev
概要 今回はNestJS上でgRPCクライアントを作成したサンプルです。 gRPCについては以下のページを参照 grpc.io NestJSのgRPCの説明記事 docs.nestjs.com NestJSでgRPC Serverを作成した記事 kakkoyakakko2.hatenablog.com| 開発覚書はてな版
gRPC and Protobuf have increased in popularity, but are they safer than REST? In this article, we discuss the how and why of gRPC contract testing.| Pactflow Contract Testing Platform
Explore the most popular API protocols today, including their key strengths, limitations, and use cases.| Postman Blog