DEV319: Embracing Change without Breaking the World

Published: Dec. 1, 2017, midnight

b"Over the last decade AWS has launched more than 90 services. Even today, we continue to innovate at a rapid pace and are adding new features and services. We see backwards compatibility not as a goal to strive for, but as a necessity to maintain our most important asset: customer trust. It's not just the service API that needs to be backwards compatible, client-side libraries need to be able to handle service changes as well. Over the years we've learned how to design API's in a way that preserves backwards compatibility, while continuing to evolve. In this session you will learn: \\xb7\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0What backwards compatibility means and what forms it may take \\xb7\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0What impact breaking changes may have on consumers of an API or library \\xb7\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0\\xa0How to design to prevent breaking changes while allowing for future enhancements Through this session, you will also pick-up concrete design patterns that you can use and anti-patterns that you can recognize so that your service API or library can continue to grow without breaking the world.\\xa0Using the AWS client-side SDKs as a case study we'll look at actual code examples of specific strategies that you can employ to keep your library backwards compatible without painting yourself into a corner."