Modernizing Legacy Applications with GO: Strangler Fig Patterns for Migrating Java, PHP, and .NET Monoliths to Microservices (with full source code) - Brossura

Volkmann, Erik

 
9798181817296: Modernizing Legacy Applications with GO: Strangler Fig Patterns for Migrating Java, PHP, and .NET Monoliths to Microservices (with full source code)

Sinossi

Your legacy system works, but that's exactly the problem.

It works well enough that nobody wants to touch it. Well enough that new features get bolted on around the edges because changing the core feels like defusing a bomb. Well enough that "we should really rewrite this someday" has been said in every quarterly planning meeting for three years, and everyone in the room knows it will never happen, because the last team that tried didn't survive it.

This book is not a rewrite. It's the alternative.

Modernizing Legacy Applications with Go is a complete, pattern-by-pattern guide to incrementally replacing a production system, in Go, while it continues serving real users, so that at no point are you betting the business on a single high-stakes cutover, and at no point does the new system need to be finished before it starts delivering value.

The Strangler Fig approach, built from the ground up in Go

What's inside

  • The routing layer — build a reverse proxy in Go's standard library that sits in front of your legacy system, currently forwarding everything unchanged, ready to redirect specific traffic to new Go services as they come online
  • Traffic shadowing — send copies of real production requests to your Go implementation, compare responses against the legacy system, and catch behavioral mismatches before a single real user is affected
  • Percentage-based canary rollout — move from 1% to 5% to 50% to 100% of live traffic with a config file change, no redeployment, with automatic fallback to legacy if the Go service goes down mid-rollout
  • Session bridging for Java, PHP, and .NET — validate legacy session cookies and JWTs from Go services without modifying the authentication system that issues them
  • Change Data Capture pipelines in Go — detect legacy database changes via polling or Debezium CDC, propagate them idempotently to Go services' own data stores, and monitor sync lag before it becomes a data correctness incident
  • Two complete case studies — extract a capability from a Java monolith end-to-end in Chapter 11, then tackle the PHP session handling and .NET SOAP interop issues that make those source stacks different in Chapter 12
  • Resilience patterns — timeouts, retries with exponential backoff, circuit breakers, graceful degradation, and bulkheading, plus a testing approach that actually exercises failure paths before an incident forces you to
  • Decommissioning done right — a checklist for removing legacy code safely, including the side-effect check that catches the dependency nobody documented and the column that three other systems silently depend on

Who this book is for

You're a backend developer, architect, or tech lead who has been handed a legacy system and asked to modernize it, or who has been modernizing one for months and keeps hitting the same categories of problem. You know Go's fundamentals. What you need is the specific set of patterns that arise when Go is introduced into an existing system written in another language, rather than used to build something from scratch.

If your legacy system is Java, PHP, or .NET, this book addresses your stack directly. If it's something else, the patterns still apply, what changes is session handling specifics and ORM quirks, not the overall approach.

What makes this different

Most migration guidance lives at the whiteboard level, bounded contexts, seam identification, the Strangler Fig metaphor itself. This book starts where those conversations end. Every pattern has working Go code. Every decision point has a framework for making it.
Scroll up and Grab a Copy Today!

Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.