<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Api on Hi, I&#39;m Muhammad Amal</title>
    <link>https://muhammadamal.my.id/tags/api/</link>
    <description>Recent content in Api on Hi, I&#39;m Muhammad Amal</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 30 Jul 2025 09:00:00 +0700</lastBuildDate>
    <atom:link href="https://muhammadamal.my.id/tags/api/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Rate Limiting and Resilience Patterns for Modern APIs</title>
      <link>https://muhammadamal.my.id/blog/rate-limiting-resilience-patterns-modern-apis/</link>
      <pubDate>Wed, 30 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rate-limiting-resilience-patterns-modern-apis/</guid>
      <description>A working playbook for keeping API services up under load and degrading gracefully when they can&amp;rsquo;t.</description>
    </item>
    <item>
      <title>OpenTelemetry for gRPC Services in Go, A Production Walkthrough</title>
      <link>https://muhammadamal.my.id/blog/opentelemetry-grpc-go-production-walkthrough/</link>
      <pubDate>Mon, 28 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/opentelemetry-grpc-go-production-walkthrough/</guid>
      <description>OpenTelemetry has stabilized enough that you can wire it up once and forget. Here&amp;rsquo;s the configuration that ships.</description>
    </item>
    <item>
      <title>Schema First API Development with buf, A Step by Step Tutorial</title>
      <link>https://muhammadamal.my.id/blog/schema-first-api-development-with-buf/</link>
      <pubDate>Wed, 23 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/schema-first-api-development-with-buf/</guid>
      <description>buf turns protobuf from a code generator into a real schema platform. Here&amp;rsquo;s the workflow that actually scales across teams.</description>
    </item>
    <item>
      <title>API Gateway Architectures in 2025, Envoy Gateway and Kong Compared</title>
      <link>https://muhammadamal.my.id/blog/api-gateway-architectures-2025-envoy-gateway-kong/</link>
      <pubDate>Mon, 21 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/api-gateway-architectures-2025-envoy-gateway-kong/</guid>
      <description>Both gateways are mature in 2025. The right choice depends less on features than on how your platform team wants to operate.</description>
    </item>
    <item>
      <title>Streaming gRPC for Real Time Data, A Hands On Guide</title>
      <link>https://muhammadamal.my.id/blog/streaming-grpc-realtime-data-guide/</link>
      <pubDate>Wed, 16 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/streaming-grpc-realtime-data-guide/</guid>
      <description>Streaming gRPC is more than calling Send in a loop. Here&amp;rsquo;s how to build streams that don&amp;rsquo;t fall over in production.</description>
    </item>
    <item>
      <title>Securing Internal Microservices with JWT and SPIFFE in 2025</title>
      <link>https://muhammadamal.my.id/blog/securing-internal-microservices-jwt-spiffe-2025/</link>
      <pubDate>Mon, 14 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/securing-internal-microservices-jwt-spiffe-2025/</guid>
      <description>SPIFFE gives you trustworthy workload identity. JWT gives you portable claims. Together, they replace static service tokens.</description>
    </item>
    <item>
      <title>Connect Go for Browser Friendly gRPC, A Production Tutorial</title>
      <link>https://muhammadamal.my.id/blog/connect-go-browser-friendly-grpc-tutorial/</link>
      <pubDate>Wed, 09 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/connect-go-browser-friendly-grpc-tutorial/</guid>
      <description>Connect-Go gives you gRPC ergonomics with a wire format browsers can actually speak. Here&amp;rsquo;s how to use it well.</description>
    </item>
    <item>
      <title>gRPC Deep Dive in 2025, Patterns for High Throughput Services</title>
      <link>https://muhammadamal.my.id/blog/grpc-deep-dive-2025-high-throughput-patterns/</link>
      <pubDate>Mon, 07 Jul 2025 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/grpc-deep-dive-2025-high-throughput-patterns/</guid>
      <description>What still trips people up about gRPC in 2025, and the production patterns that actually move the needle.</description>
    </item>
    <item>
      <title>mTLS, Service Mesh or Application Layer in 2024</title>
      <link>https://muhammadamal.my.id/blog/mtls-service-mesh-or-application-layer/</link>
      <pubDate>Wed, 24 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/mtls-service-mesh-or-application-layer/</guid>
      <description>Choosing between mesh-terminated and application-terminated mTLS in 2024, with Envoy 1.30 and Go 1.22 implementations and the failure modes that decide it.</description>
    </item>
    <item>
      <title>OpenAPI First API Design in Go, oapi-codegen in 2024</title>
      <link>https://muhammadamal.my.id/blog/openapi-first-go-oapi-codegen/</link>
      <pubDate>Mon, 22 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/openapi-first-go-oapi-codegen/</guid>
      <description>How I run an OpenAPI-first workflow with oapi-codegen 2.x in Go 1.22, including schema patterns and CI discipline that keeps spec and code aligned.</description>
    </item>
    <item>
      <title>Rate Limiting at Scale, Token Bucket and Sliding Window in Redis</title>
      <link>https://muhammadamal.my.id/blog/rate-limiting-redis-token-bucket-sliding-window/</link>
      <pubDate>Wed, 17 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rate-limiting-redis-token-bucket-sliding-window/</guid>
      <description>Token bucket vs sliding window rate limiting in Redis, with Go code, Lua scripts, and the operational tradeoffs that decide which one to ship.</description>
    </item>
    <item>
      <title>Choosing an API Gateway in 2024, Kong, Tyk, and Envoy Gateway</title>
      <link>https://muhammadamal.my.id/blog/choosing-api-gateway-2024/</link>
      <pubDate>Mon, 15 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/choosing-api-gateway-2024/</guid>
      <description>Comparing Kong 3.7, Tyk, and Envoy Gateway in 2024 by the operational tradeoffs that actually decide gateway choice in production.</description>
    </item>
    <item>
      <title>Securing Go Microservices with JWT, Patterns That Hold Up</title>
      <link>https://muhammadamal.my.id/blog/securing-go-microservices-jwt/</link>
      <pubDate>Wed, 10 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/securing-go-microservices-jwt/</guid>
      <description>Production JWT patterns for Go microservices in 2024 using golang-jwt v5, covering signing, validation, and context plumbing.</description>
    </item>
    <item>
      <title>gRPC for Internal Services in Go, A buf Powered Workflow</title>
      <link>https://muhammadamal.my.id/blog/grpc-internal-services-go-buf/</link>
      <pubDate>Mon, 08 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/grpc-internal-services-go-buf/</guid>
      <description>How I wire up gRPC for internal Go services in 2024 with buf CLI 1.34, lint rules, and breaking change detection.</description>
    </item>
    <item>
      <title>Federated GraphQL with Apollo Router, Patterns for 2024</title>
      <link>https://muhammadamal.my.id/blog/federated-graphql-apollo-router/</link>
      <pubDate>Wed, 03 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/federated-graphql-apollo-router/</guid>
      <description>Federated GraphQL patterns I rely on with Apollo Router 1.48 in 2024, drawn from real subgraph deployments.</description>
    </item>
    <item>
      <title>GraphQL vs REST in 2024, An Honest Take After Five Years</title>
      <link>https://muhammadamal.my.id/blog/graphql-vs-rest-2024/</link>
      <pubDate>Mon, 01 Jul 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/graphql-vs-rest-2024/</guid>
      <description>An opinionated comparison of GraphQL and REST in 2024, drawn from production Go services, not benchmarks.</description>
    </item>
    <item>
      <title>Jira REST API v3, Automation Patterns That Don&#39;t Hate You Back</title>
      <link>https://muhammadamal.my.id/blog/jira-rest-api-v3-automation-patterns/</link>
      <pubDate>Thu, 04 May 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/jira-rest-api-v3-automation-patterns/</guid>
      <description>Hard-won lessons from wiring Jira Cloud into n8n and Node automations. Auth, ADF documents, JQL pagination, webhook signatures, and the gotchas that ate my week.</description>
    </item>
    <item>
      <title>Backend API Security in 2022, The Threat Model</title>
      <link>https://muhammadamal.my.id/blog/backend-api-security-2022/</link>
      <pubDate>Wed, 02 Nov 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/backend-api-security-2022/</guid>
      <description>Backend API security threat model 2022: real threats, working mitigations, priority order.</description>
    </item>
    <item>
      <title>Connecting n8n to the Jira REST API v3</title>
      <link>https://muhammadamal.my.id/blog/n8n-jira-rest-api-v3/</link>
      <pubDate>Mon, 09 May 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/n8n-jira-rest-api-v3/</guid>
      <description>Connect n8n to Jira REST API v3. API token, built-in node, JQL, HTTP fallback for missing operations.</description>
    </item>
    <item>
      <title>Building a JSON API in Rust with Axum 0.4</title>
      <link>https://muhammadamal.my.id/blog/rust-json-api-axum/</link>
      <pubDate>Wed, 16 Mar 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rust-json-api-axum/</guid>
      <description>JSON API in Rust with Axum 0.4. Router, extractors, state, error handling, tower middleware. Minimal real backend.</description>
    </item>
  </channel>
</rss>
