Building a Better Web
June 19–20, 2017: Training
June 20–22, 2017: Tutorials & Conference
San Jose, CA

Of monoliths and microservices: Adventures in structuring a web app

Shane Russell (United States Digital Service)
3:35pm–4:15pm Wednesday, June 21, 2017
Fullstack Development
Location: 210 AE
Secondary topics:  Build and automation, Case studies and comparisons, Microservices
Average rating: ***..
(3.62, 8 ratings)

Who is this presentation for?

  • Software developers

Prerequisite knowledge

  • A basic understanding of continuous integration and deployment automation

What you'll learn

  • Learn when to break your application into separate repositories or deployable units and how do it right


There are good reasons to break up your web application into multiple libraries and deployable parts, but it may end up hurting more than it helps. The US Digital Service is building a suite of tools to replace a large legacy application at the Department of Veteran Affairs. Knowing the complexity of the end state and enamored with microservices, the team was much too aggressive in breaking up the Rails application into multiple deployable units and gems from the start. In hindsight, the team ended up paying a large overhead price. It would have probably been better to start with a monolith.

Shane Russell reflects on this experience, sharing advice and lessons learned on how and when to break up your web app and digging into the specifics of the overhead incurred by their team for doing so. He also describes some of the benefits of breaking apart your application at the right time and offers techniques for doing it in a way that will have your team reaping the most benefits.

Photo of Shane Russell

Shane Russell

United States Digital Service

Shane Russell is a software developer at the United States Digital Service, where he helps make federal government software work better and cost less. He likes making things with CSS and JavaScript.