<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Composable Commerce Migration: Magento 2 → Microservices Golang on Lê Tuấn Anh — Go Backend Architect &amp; Microservices Engineer</title><link>https://tanhdev.com/series/composable-commerce-migration/</link><description>Recent content in Composable Commerce Migration: Magento 2 → Microservices Golang on Lê Tuấn Anh — Go Backend Architect &amp; Microservices Engineer</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 24 Jun 2026 10:00:00 +0700</lastBuildDate><atom:link href="https://tanhdev.com/series/composable-commerce-migration/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 0: Executive Summary — Why the $200K/Year Magento Trap Is Now Avoidable</title><link>https://tanhdev.com/series/composable-commerce-migration/part-0-executive-summary/</link><pubDate>Wed, 01 Apr 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-0-executive-summary/</guid><description>The real cost of Magento 2 Enterprise — $125K–200K/year in licensing, scaling limits during flash sales, and PHP module coupling that kills developer velocity. And how a Composable Commerce Platform built on 21 Go microservices replaced it entirely.</description></item><item><title>Part 1: DDD Bounded Contexts — Decomposing Magento Modules into 21 Microservices</title><link>https://tanhdev.com/series/composable-commerce-migration/part-1-ddd-bounded-contexts/</link><pubDate>Wed, 08 Apr 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-1-ddd-bounded-contexts/</guid><description>How to map Magento 2&amp;#39;s 240+ modules to 21 bounded contexts using Domain-Driven Design — including the counter-intuitive splits: Checkout ≠ Order, Pricing ≠ Promotion, and why 21 services is the right number for this scale.</description></item><item><title>Part 2: Rush Monorepo — Managing 21 Go Services + 2 Frontends in One Repo</title><link>https://tanhdev.com/series/composable-commerce-migration/part-2-rush-monorepo/</link><pubDate>Wed, 15 Apr 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-2-rush-monorepo/</guid><description>Why Rush beats Nx and Turborepo for a mixed Go + Next.js monorepo: strict dependency governance, PNPM workspaces, incremental CI builds, and TypeScript SDK auto-generated from Go proto definitions.</description></item><item><title>Part 3: Golang + Kratos v2 — Microservice Framework Internals</title><link>https://tanhdev.com/series/composable-commerce-migration/part-3-golang-kratos/</link><pubDate>Wed, 22 Apr 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-3-golang-kratos/</guid><description>How Kratos v2 structures a production Go microservice: the 5-layer directory layout, Wire compile-time dependency injection, dual HTTP+gRPC transport, and the common library that eliminates 4,150 lines of boilerplate across 21 services.</description></item><item><title>Part 4: gRPC Internal + REST Gateway — API Contract Lifecycle</title><link>https://tanhdev.com/series/composable-commerce-migration/part-4-grpc-rest-gateway/</link><pubDate>Wed, 29 Apr 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-4-grpc-rest-gateway/</guid><description>Service-to-service gRPC communication, proto naming conventions, the Money type that prevents floating-point pricing bugs, cursor pagination, and how the Gateway Service bridges REST clients to internal gRPC services.</description></item><item><title>Part 5: EAV Schema Migration — Magento's Biggest Trap</title><link>https://tanhdev.com/series/composable-commerce-migration/part-5-eav-schema-migration/</link><pubDate>Wed, 06 May 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-5-eav-schema-migration/</guid><description>How to extract Magento&amp;#39;s Entity-Attribute-Value schema: the integer→UUID identity mapping problem, why you cannot hardcode attribute IDs, the dynamic SQL pivot pattern, and the exact SQL queries that work in production.</description></item><item><title>Part 6: Phase 1 — Strangler Fig: Read-Only Migration + CDC</title><link>https://tanhdev.com/series/composable-commerce-migration/part-6-phase1-strangler-fig/</link><pubDate>Wed, 13 May 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-6-phase1-strangler-fig/</guid><description>Phase 1 of the 3-phase Magento migration: deploy read-only Go microservices behind the API Gateway, implement Debezium CDC for real-time sync from Magento MySQL (without Kafka), use feature flags for zero-risk traffic routing, and automatic fallback on failure.</description></item><item><title>Part 7: Phase 2 — Dual-Write: Dapr PubSub + Conflict Resolution</title><link>https://tanhdev.com/series/composable-commerce-migration/part-7-phase2-dual-write/</link><pubDate>Wed, 20 May 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-7-phase2-dual-write/</guid><description>Enable write APIs on Go microservices while Magento stays live: event-driven dual-write via Dapr PubSub, a 5-policy conflict resolution matrix, magento-sync-adapter, and per-service migration sequence.</description></item><item><title>Part 8: Phase 3 — Full Cutover: Zero Downtime + ArgoCD GitOps</title><link>https://tanhdev.com/series/composable-commerce-migration/part-8-phase3-full-cutover/</link><pubDate>Wed, 27 May 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-8-phase3-full-cutover/</guid><description>Completing the Magento migration: gradual 25%→100% traffic cutover for Order Service, Magento on hot standby for 30-day rollback window, archive service for one-way sync, and ArgoCD+Kustomize GitOps for all ongoing deployments.</description></item><item><title>Part 9: Transactional Outbox + Saga — Guaranteed Event Delivery Across Services</title><link>https://tanhdev.com/series/composable-commerce-migration/part-9-outbox-saga/</link><pubDate>Wed, 03 Jun 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-9-outbox-saga/</guid><description>How the Checkout→Order→Payment→Warehouse saga runs with guaranteed-once delivery: the custom PostgreSQL outbox pattern (not Dapr native), choreography-based saga, idempotency keys, compensation transactions, and the circuit breaker resilience layer.</description></item><item><title>Part 10: ADR Walkthrough — 24 Architecture Decisions Explained</title><link>https://tanhdev.com/series/composable-commerce-migration/part-10-adr-walkthrough/</link><pubDate>Wed, 10 Jun 2026 10:00:00 +0700</pubDate><guid>https://tanhdev.com/series/composable-commerce-migration/part-10-adr-walkthrough/</guid><description>Every major technical decision behind the Composable Commerce Platform: why Dapr over Kafka, why Kustomize over Helm, why go-kratos over Gin, why Goose over golang-migrate, and why the founding event-driven decision came 3 months before everything else.</description></item></channel></rss>