This document discusses how API gateways and service meshes can help with application modernization by incrementally decoupling applications from infrastructure. An API gateway handles ingress traffic and exposes internal services externally. A service mesh handles communication between services and provides observability, reliability, and security for service-to-service calls. There are two common patterns for decoupling applications: using an API gateway in an "outside-in" approach or deploying a service mesh within a "balkanized" segment of services. Both tools can help modernize applications in a gradual manner.