AWS Backward Compatibility and API Stability - The Trust Built by Never Retiring Published APIs
Examine AWS's track record of never retiring published APIs, compare it with Azure's rebranding history and GCP's service discontinuation cases, and explain why API stability matters for enterprises.
API Stability Is Synonymous with Infrastructure Stability
Building systems on top of cloud services means depending on that cloud's APIs. When APIs change, every system built on top of them is affected. API deprecation or breaking changes force application modifications, test re-execution, and deployment replanning, representing unexpected costs and risks for enterprises. Since its founding, AWS has maintained a policy of never retiring published APIs. The basic S3 APIs published in 2006 (PutObject, GetObject, DeleteObject) still work exactly the same way in 2025. New features are added as new API endpoints or parameters, and existing APIs remain unchanged. This policy has been consistently maintained even as AWS services have grown to over 200.
The Practical Value of Maintaining Backward Compatibility
The practical value of maintaining API backward compatibility is often overlooked but is extremely significant. First, it reduces maintenance costs for existing systems. If APIs don't change, there's no need to modify working systems. The operational principle of "don't touch what's working" is guaranteed by the cloud provider itself. Second, it protects long-term investments. Code invested in cloud infrastructure automation, including CloudFormation templates, CDK code, Terraform configurations, and CI/CD pipelines, won't become worthless due to API changes. Third, it suppresses technical debt. Modification work to keep up with API changes is a form of technical debt that produces no new value. AWS's backward compatibility policy structurally prevents this type of debt. Fourth, it enables planned upgrades. Even when new APIs or features are added, existing APIs continue to work, so you can decide the timing of migration on your own schedule. You're never forced to upgrade at the provider's convenience.
Azure's Rebranding and API Evolution
Azure has a different history when it comes to API stability. In Azure's early days, an API framework called Azure Service Management (ASM) was used, but migration to Azure Resource Manager (ARM) began in 2014, and ASM was gradually deprecated. This migration required rewriting existing scripts and tools, affecting many users. Azure's brand name changes have also been frequent. The rename from Windows Azure to Microsoft Azure (2014), Azure Active Directory to Microsoft Entra ID (2023), and the rename from Visual Studio Team Services to Azure DevOps are examples of repeated service name and brand changes. While brand name changes differ from breaking API changes, they require updates to documentation, training materials, and internal knowledge bases, causing operational confusion. Azure's API versioning is also complex. ARM APIs are provided with version numbers, but support deadlines may be set for older versions, requiring periodic version upgrades in some cases.
GCP's History of Service Discontinuation
Concerns about GCP's API stability are rooted in Google's broader history of service discontinuation. Google has shut down numerous consumer-facing services, including Google Reader (2013), Google+ (2019), and Stadia (2023). This culture of discontinuing underused services has also influenced GCP. In GCP, Cloud IoT Core was discontinued in 2023. Customers using IoT Core were forced to migrate to alternative services. Cloud Domains was also announced for discontinuation in 2024. In recent years, GCP has been working to earn enterprise customer trust by clarifying its service deprecation policy and providing notification periods before discontinuation. However, the perception that "Google discontinues services" remains deeply ingrained and serves as a concern for enterprise decision-makers when selecting cloud platforms. At AWS, service discontinuation is extremely rare. Even services with low usage are maintained as long as existing customers depend on them. While this policy incurs costs in the short term, it builds long-term trust that "if you choose AWS, services won't suddenly disappear."
Design Practices That Enable Backward Compatibility
Maintaining API backward compatibility over long periods is not technically easy. Several design practices enable AWS to achieve this. First, there is careful deliberation at the API design stage. Through the Working Backwards process, API design is driven backward from customer use cases. Thorough consideration before release reduces the need to change APIs later due to design mistakes. Second, APIs are designed with extensibility in mind. New fields can be added to API responses without breaking existing clients, which simply ignore unknown fields. New parameters are added as optional with default values. Third, there is a versioning strategy. When breaking changes are necessary, they are provided as new API versions while old versions continue to be maintained in parallel. Customers can migrate to new versions at their own pace. These practices are effective when combined with the autonomy of Two-Pizza Teams. Each team takes full responsibility for their service's APIs and internalizes backward compatibility maintenance as part of their own quality standards. To learn best practices for API design, related books (Amazon) can also be helpful.
Summary
AWS's backward compatibility policy has been consistently maintained for over 18 years since the S3 API in 2006, delivering practical value through reduced maintenance costs for existing systems, protection of long-term investments, and suppression of technical debt. Azure faces challenges in API stability due to the ASM-to-ARM migration and frequent brand name changes. GCP has been influenced by Google's culture of service discontinuation, with cases like the IoT Core shutdown undermining enterprise customer trust. When selecting a cloud platform, API stability and backward compatibility should be valued as highly as, or even more than, feature richness.