How we build software at Flow

Mike Bryzek - CTO + Co-Founder

When we started Flow, we had the benefit of our experience building and scaling Gilt Groupe's ecommerce platform, including being early adopters of large scale micro services architecture. In the early days of Flow, we made the decision to minimize technical risk by building software the way we knew - namely, we started the company from day one on a micro services architecture - taking the many good things we learned at Gilt, while improving on our many learnings.

We have a relatively unique approach to software delivery that is focused primarily on a single foundation: empowering our people to build quality software efficiently.

A few examples of what this means for our architecture:

  • We are an API First platform - every API is managed in git as first class definitions, and all of the products we build speak only to our APIs. If you see a product at Flow - you can build it yourself using the same APIs our clients and partners have access to.
  • Databases are private to each micro service - our own services communicate via the defined APIs (REST and event streams) to build the services we offer to our customers.
  • We practice continuous delivery - When you merge a pull request, it's automatically deployed to production.
  • We choose to not have test / QA / Preproduction environments and instead made our production environment itself testable. The primary tool engineers have to avoid defects is to write automated tests, and as a result our automated test quality is very high.

We shared our practices in more detail at a QCON conference in NY and were delighted to find strong interest in what we do! The talk went viral with over 400k views at the time of writing. You can view a recording of the talk here: Design Microservice Architectures the Right Way