<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Tagy Aldeen</title><description>Senior backend engineer and tech lead in Tokyo — distributed systems on AWS and GCP, Go and Java, and production LLM/RAG services.</description><link>https://tagy.sd/</link><item><title>Serving ML recommendations inside a LINE mini-app</title><link>https://tagy.sd/blog/recommendation-system-line-miniapp/</link><guid isPermaLink="true">https://tagy.sd/blog/recommendation-system-line-miniapp/</guid><description>The architecture behind a property-search platform delivered entirely through LINE — Go backend, LIFF mini-apps, an XGBoost inference service, and the batch pipelines that keep recommendations fresh.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Serverless in production: lessons from an enterprise AWS platform</title><link>https://tagy.sd/blog/production-serverless-aws-architecture/</link><guid isPermaLink="true">https://tagy.sd/blog/production-serverless-aws-architecture/</guid><description>Fifty-plus Lambda functions, hexagonal architecture, SQS-driven batch pipelines, and multi-region DR on AWS — the structure, queue design, and operational decisions behind an enterprise serverless platform.</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Event-driven microservices without losing events: the transactional outbox in practice</title><link>https://tagy.sd/blog/transactional-outbox-event-driven-microservices/</link><guid isPermaLink="true">https://tagy.sd/blog/transactional-outbox-event-driven-microservices/</guid><description>How we kept orders, payments, and downstream services consistent on Cloud Run and Spanner using the transactional outbox pattern and task-queue relay workers — and what we&apos;d do differently.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Service-to-service auth without a service mesh</title><link>https://tagy.sd/blog/cloud-run-sidecar-auth/</link><guid isPermaLink="true">https://tagy.sd/blog/cloud-run-sidecar-auth/</guid><description>A sidecar proxy pattern on Cloud Run: ingress authentication, egress through a central internal API hub, and an internal load balancer doing the routing — mesh benefits without mesh weight.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Building a product where the UI is a chat thread</title><link>https://tagy.sd/blog/chat-thread-as-ui/</link><guid isPermaLink="true">https://tagy.sd/blog/chat-thread-as-ui/</guid><description>LIFF token verification, Flex Message carousels, rich menus, and chatbot flows as routing — chat-platform engineering as a backend discipline.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The lock contention that wasn&apos;t in the query plan</title><link>https://tagy.sd/blog/innodb-lock-contention/</link><guid isPermaLink="true">https://tagy.sd/blog/innodb-lock-contention/</guid><description>Up to a thousand concurrent Go workers, each upserting its own user&apos;s rows in MySQL — and InnoDB kept detecting deadlocks between them. The gap-lock mechanics, the fix menu ranked, and the deliberately boring choice.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Multi-region DR you actually rehearse</title><link>https://tagy.sd/blog/multi-region-dr-terraform/</link><guid isPermaLink="true">https://tagy.sd/blog/multi-region-dr-terraform/</guid><description>Tokyo primary, Osaka standby, one Terraform module set: what to replicate, what to rehearse, and why an untested failover plan is a diagram, not a capability.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Design your logs like an API</title><link>https://tagy.sd/blog/design-logs-like-an-api/</link><guid isPermaLink="true">https://tagy.sd/blog/design-logs-like-an-api/</guid><description>Business questions answered from CloudWatch Logs Insights: log-line contracts, why enriching an existing line beats adding a new one, JSON-escaping gotchas, and the retention trap.</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The push pipeline that didn&apos;t get blocked</title><link>https://tagy.sd/blog/push-notification-pipeline/</link><guid isPermaLink="true">https://tagy.sd/blog/push-notification-pipeline/</guid><description>Notification campaigns as scheduled batch jobs: eligibility and dedup pushed into the audience query, a send log that doubles as the resume checkpoint, throttling against platform quotas — and the two gates I&apos;d add today.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>One interface, four ways to pay</title><link>https://tagy.sd/blog/payment-gateway-abstraction/</link><guid isPermaLink="true">https://tagy.sd/blog/payment-gateway-abstraction/</guid><description>Card with 3DS, wallet, convenience store, and direct debit behind a single internal service — how a payment gateway abstraction keeps a provider&apos;s quirks out of your order flow.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>When a goroutine is the wrong tool</title><link>https://tagy.sd/blog/context-cancellation-postmortem/</link><guid isPermaLink="true">https://tagy.sd/blog/context-cancellation-postmortem/</guid><description>A production postmortem on Go context cancellation: a fire-and-forget cache write inherited the request&apos;s context and died with it — the diagnosis, the reverted first fix, and the boring final one.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Hexagonal architecture inside Lambda, with code</title><link>https://tagy.sd/blog/hexagonal-architecture-lambda/</link><guid isPermaLink="true">https://tagy.sd/blog/hexagonal-architecture-lambda/</guid><description>How fifty-plus TypeScript Lambda functions stayed testable and consistent: ten-line handlers, ports and adapters, and one use case serving API, queue, and batch entrypoints.</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item></channel></rss>