GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Eric Bowman, Gilt Groupe

Eric Bowman

Biography: Eric Bowman

Eric Bowman is VP of Architecture at Gilt Groupe, where he has been a driving force for increased Scala adoption.  He has been programming since 1981, and has had the pleasure of working on a wide range of interesting systems, including the The Sims 1.0, the first global 3G phone network, TomTom’s online map & traffic applications, and Gilt Groupe’s end-to-end architecture.

Presentation: Fast but Not Loose: Typesafe Clients in a Distributed Service Architecture, a Retrospective

Track: Distributed Systems Renaissance / Time: Monday 14:30 - 15:20 / Location: Auditorium, AROS

Gilt Groupe is an innovative online shopping destination offering its members special access to inspiring merchandise, culinary offerings, and experiences every day, many at insider prices. Every day at noon New York time, Gilt launches dozens of new sales which draw many thousands of visitors to the site, often within the span of a few seconds around noon. As a result, Gilt has some challenging technical & non-functional requirements, and the Architecture Team at Gilt is focused on how to scale Gilt's model to accommodate more sales, more customers, and more people working on the system.

Gilt Groupe's service architecture started as Ruby, migrated to the JVM but kept a hashmaps & JSON approach, and then migrated again to a typesafe, futures-based strong client model implemented in Scala. This talk is a retrospective on this journey with particular emphasis on the last approach. What are the benefits of a strong client model? When did it slow down development, and when did it speed it up? How did we handle binary compatibility across hundreds of services (or did we??)? How do we guarantee compatibility across multiple versions of the client stack?  Would we do it this way again?