Api-Design

Rust Error Handling: thiserror, anyhow, and error-envelope
reading time: 19 minutes
Three Rust error handling crates that seem to overlap but fill distinct roles. Learn when to use thiserror for typed errors, anyhow for application code, and error-envelope for HTTP boundaries.
You Don't Know JSON: Part 1 - Origins, Evolution, and the Cracks in the Foundation
reading time: 18 minutes
Everyone thinks they know JSON. But do you know why it was created, what problems it solved, and more importantly - what problems it created? Part 1 explores JSON’s origins, its triumph over XML, and the fundamental weaknesses that spawned an entire ecosystem of extensions.
You Don't Know JSON: Part 2 - JSON Schema and the Art of Validation
reading time: 21 minutes
JSON lacks types and validation - any structure parses successfully. JSON Schema solves this by adding a validation layer without changing JSON itself. Learn how to define schemas, validate at runtime, generate code, and build type-safe APIs.
You Don't Know JSON: Part 5 - JSON-RPC: When REST Isn't Enough
reading time: 35 minutes
REST is great for resources, but what about actions? JSON-RPC provides a simple, transport-agnostic protocol for calling remote functions. Learn the spec, implementation patterns, and why major projects like Ethereum and VS Code chose JSON-RPC over REST.
The Complete Guide to API Communication Patterns: REST, GraphQL, WebSocket, gRPC, and More
reading time: 24 minutes
Master API communication patterns: REST, GraphQL, WebSocket, gRPC, webhooks, message queues, and more. Complete guide with diagrams, code examples, and decision frameworks for choosing the right pattern.
Understanding Protocol Buffers: Part 1 - Introduction and Core Concepts
reading time: 12 minutes
Protocol Buffers (protobuf) is Google’s binary serialization format - smaller, faster, and type-safe compared to JSON. Learn what protobuf is, how it works, and when to use it for APIs and microservices.
HTTP Error Handling in Go: Chi, Gin, and Echo
reading time: 5 minutes
Stop returning errors as plain text. Learn how to implement consistent, structured HTTP error responses in Go with support for Chi router, Gin framework, and Echo framework. Includes field-level validation and trace IDs.