One of the greatest challenges to developing an API is ensuring that your API lasts. After all, you don't want to have to release and manage multiple versions of your API just because you weren't expecting users to use it a certain way, or because you didn't anticipate far enough down the roadmap. In this session we'll talk about the challenge of API Longevity, as well as ways to increase your API lifecycle including having a proper mindset, careful design, agile user experience and prototyping, best design practices including hypermedia, and the challenge of maintaining persistence.
Rails as a framework is famous for getting an application up and running quickly, but the very paradigms that make it so easy at the start can lead to maintenance nightmares down the road. Successful applications grow rapidly larger, more complex, and harder to extend and maintain. One way to approach refactoring a monolithic application is dividing it up into a series of smaller applications that organize the work of the system through internal APIs and message queues. In this presentation you will be introduced to tools to enable this architecture, gain insight on how best to use them, and explore the guiding principles behind the SOA approach to refactoring.
Heroku started out as single, large Rails app. Over the years it split into countless (really ... I have no idea how many) smaller services. Some of these splits were very successful, and others not so much. Pliny—an API framework built on Sinatra—distills everything we've learned the hard way about building production APIs in Ruby. Pliny takes care of mundane, mechanical decisions like logging and configuration, but also service problems including API versioning and json schemas. Most importantly, it comes with patterns to manage complexity as the service grows. It also shares its name with fantastic beer from Russian River. In this session, we'll explore what's important as you split into services, but also what can go terribly wrong. You'll learn everything you need to get started yourself with Pliny by looking at an open-source microservice built with it.