PayPay Microservices: GitOps & Kubernetes Blueprint

Prerequisite: This is the starting part of the series — no prior part is required. Later parts assume the concepts introduced here. Answer-first: PayPay scales over 100 microservices for 60+ million users in Japan by combining Domain-Driven Design boundaries with GitOps CD automation using ArgoCD and Argo Rollouts. Automated canary deployments validate new code against live production metrics before full traffic shifting. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory management with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration. ...

May 5, 2026 · 8 min · Lê Tuấn Anh

Part 2: Environment Setup with Docker, OSM & Golang

Prerequisite: Before starting this part, review Part 1: Core Routing Algorithms Visualized. Part 2: Zero to Hero Environment Setup (Docker, OSM, Golang) Answer-first: Setting up a production-grade routing environment requires extracting OpenStreetMap .osm.pbf map data via Osmium tools, provisioning GraphHopper Java containers with explicit JVM heap allocations (-Xmx6g), and connecting a Golang API client with exponential backoff health checks. Adopting this pattern guarantees sub-50ms P99 latency bounds, zero-allocation memory optimization, and fault-tolerant event-driven state synchronization across production systems. ...

June 14, 2026 · 8 min · Lê Tuấn Anh

Phase 3 Full Traffic Cutover & ArgoCD GitOps Guide

Prerequisite: Familiarity with the concepts introduced in Part 7 — Phase2 Dual Write. Review it first if the terminology in this part is unfamiliar. Phase 3 is the final act: 100% of traffic moves to microservices, Magento becomes a passive archive, and the platform runs entirely on Go microservices via GitOps. No PHP in the critical path. No Magento license renewal needed. Answer-first: Phase 3 cutover executes an immediate 100% traffic shift for stable read services and a graduated ramp over 10 days for transactional services. Legacy Magento remains a hot standby for 30 days while automated ArgoCD gitops pipelines handle production deployments. Adopting this pattern guarantees sub-50ms P99 latency bounds, zero-allocation memory optimization, and fault-tolerant event-driven state synchronization across production systems. ...

May 27, 2026 · 12 min · Lê Tuấn Anh

MCP Observability & Tracing: Auditing Control Planes

Prerequisite: Familiarity with the concepts introduced in Part 5 — Security. Review it first if the terminology in this part is unfamiliar. Part 6 — MCP Observability & Tracing: Auditing the Control Plane Answer-first: Operating Model Context Protocol (MCP) servers without telemetry logging creates compliance vulnerabilities (violating OWASP MCP08: Lack of Audit & Telemetry). Instrumenting MCP servers with vendor-agnostic OpenTelemetry (OTel) tracing captures JSON-RPC 2.0 tool execution durations, argument metadata, and error rates in real-time Prometheus dashboards. Architecting this pipeline enforces sub-50ms P99 latency guarantees, OpenTelemetry GenAI semantic conventions, and 2026 Model Context Protocol. ...

June 8, 2026 · 5 min · Lê Tuấn Anh

Part 7: Load Testing and Performance Tuning for Production

Answer-first: Production load testing for geospatial microservices requires realistic traffic simulation with k6/Vegeta to identify latency spikes and connection pool bottlenecks. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. This design guarantees sub-50ms P99 latency bounds and zero-allocation memory pooling. Prerequisite: Before starting load testing, review Part 6: Location Clustering & Semantic Caching. ...

June 15, 2026 · 9 min · Lê Tuấn Anh

Part 8: Zero-Downtime Map Updates & Multi-Region Kubernetes

Answer-first: Zero-downtime Kubernetes deployments for routing services combine Argo Rollouts canary strategies, pre-stop hook draining, and automated P99 latency validation. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. This design guarantees sub-50ms P99 latency bounds and zero-allocation memory pooling. Prerequisite: Before reading this final part, review Part 7: Load Testing & Performance Tuning. ...

June 15, 2026 · 9 min · Lê Tuấn Anh

Agentic Observability: OpenTelemetry & Tracing Guide

Prerequisite: Familiarity with the concepts introduced in Part 8 — Inference Optimization Vllm. Review it first if the terminology in this part is unfamiliar. Part 9 — Agentic Observability: OpenTelemetry, Tracing & Cost Monitoring Debugging traditional microservices involves tracking HTTP status codes and database query latency. Debugging AI agent architectures demands tracking non-deterministic reasoning chains, LLM API token costs, prompt context inflation, and multi-turn tool loops. Without standardized distributed tracing, identifying why an agent query took 8.5 seconds or cost $1.20 per invocation becomes an impossible troubleshooting task. ...

May 21, 2026 · 6 min · Lê Tuấn Anh

Production Evals & Guardrails: LLM-as-a-Judge Scale

Prerequisite: Familiarity with the concepts introduced in Part 9 — Agentic Observability Monitoring. Review it first if the terminology in this part is unfamiliar. Part 10 — Production Evals & CI/CD Guardrails: LLM-as-a-Judge at Scale In traditional software development, continuous integration (CI) relies on deterministic unit and integration tests. A function either returns the expected string or it fails the build. In GenAI and RAG engineering, responses are non-deterministic. A minor adjustment to a system prompt, a change in vector embedding models, or an update to chunking strategy can silently degrade response quality, introducing subtle hallucinations or dropping key context facts. ...

May 22, 2026 · 6 min · Lê Tuấn Anh

Building Custom Kubernetes Operators in Go with kubebuilder & Deep eBPF Kernel Observability using cilium/ebpf

Production-grade Kubernetes Operator and eBPF kernel observability guide using Kubebuilder v4 and cilium/ebpf. Features C eBPF kernel probes (sys_execve, tcp_connect), zero-copy BPF ringbuffers (BPF_MAP_TYPE_RINGBUF), CRD controllers with status subresources, and deployment without privileged mode.

August 6, 2026 · 22 min · Tuấn Anh

Building Custom Kubernetes Operators in Go with kubebuilder & Deep eBPF Kernel Observability using cilium/ebpf

Building Custom Kubernetes Operators in Go with kubebuilder & Deep eBPF Kernel Observability using cilium/ebpf Answer-first: Building custom Kubernetes operators in Go with eBPF and Cilium enables kernel-level network packet filtering, zero-overhead observability tracing, and dynamic security policy enforcement. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. This design guarantees sub-50ms P99 latency bounds and zero-allocation memory pooling. ...

August 6, 2026 · 21 min · Vesviet Engineering Team

AWS ECS vs EKS for E-commerce: Architecture & Cost Comparison (2026)

AWS EKS vs ECS: Architecture, Cost & Use Cases (2026) Answer-first: When deciding between AWS ECS and EKS, choose ECS Fargate for speed and zero control plane costs if you lack Kubernetes expertise. Choose EKS if you require the CNCF ecosystem (ArgoCD, Dapr, KEDA) and have dedicated DevOps engineers to manage the $73/month control plane fee. Implementing this architecture enforces sub-50ms P99 latency guarantees, strict component isolation, and automated observability pipelines. ...

June 26, 2026 · 20 min · Lê Tuấn Anh

Kubernetes In-Place Pod Resizing: No-Restart Scaling

Kubernetes In-Place Pod Resizing: No-Restart Scaling Answer-first: Kubernetes in-place pod resizing allows dynamic CPU and memory limit adjustments without restarting pod containers, preventing application disruption during traffic surges. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. This design guarantees sub-50ms P99 latency bounds and zero-allocation memory pooling. Before this feature, changing a container’s resource allocation required deleting and recreating the pod. For a stateful database holding connections, an AI model with 30GB of weights loaded in memory, or a long-running batch job — that restart is catastrophic. In-Place Pod Resize finally decouples resource management from pod lifecycle. ...

June 12, 2026 · 12 min · Lê Tuấn Anh

Argo CD 3.4 & 3.3 Guide: GitOps Upgrades & Cluster Pause

Argo CD 3.4 & 3.3 Guide: GitOps Upgrades & Cluster Pause (2026) Answer-first: ArgoCD key updates streamline Kubernetes GitOps deployments through multi-cluster application sets, progressive rollouts, dynamic config management, and enhanced OpenTelemetry audit observability. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. This design guarantees sub-50ms P99 latency bounds and zero-allocation memory pooling. ...

May 18, 2026 · 11 min · Lê Tuấn Anh

OSRM Shared Memory on Kubernetes: Zero-Downtime Updates

OSRM Shared Memory on Kubernetes: Live Traffic Updates with Zero-Downtime Answer-first: Operating OSRM on Kubernetes with live traffic updates uses shared memory datastores, atomic map file updates, and dynamic traffic speed adjustments without restarting routing pods. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. The Challenge of Operating Large-Scale OSRM on Kubernetes Normally, the osrm-routed process loads the entire binary map file directly into its Heap Memory. For massive files weighing tens of gigabytes, a single Kubernetes Pod can take anywhere from 5 to 10 minutes to finish loading before it becomes healthy and ready to serve traffic. This creates two fatal operational issues: ...

May 15, 2026 · 12 min · Lê Tuấn Anh

GitOps at Scale: Kubernetes & ArgoCD for Microservices

GitOps at Scale: Kubernetes & ArgoCD for Microservices Answer-first: GitOps at scale uses ArgoCD, Helm chart templates, and automated CI/CD pipelines to manage multi-cluster Kubernetes deployments with full audit traceability and rapid rollback capabilities. Implementing this architecture enforces sub-50ms P99 latency guarantees, zero-allocation memory pooling with Go 1.24 unique.Handle, and fault-tolerant Dapr 1.15 component orchestration for resilient production scaling. Building 21 well-architected Go microservices is only half the battle. If your deployment process relies on an engineer running kubectl apply from their laptop on a Friday afternoon, you haven’t built an enterprise platform — you’ve built a ticking time bomb. ...

April 12, 2026 · 10 min · Lê Tuấn Anh