Project Mosaic illustration

Project Mosaic | Microservices for the Frontend

Mosaic is a set of services, libraries together with a specification that defines how its components interact with each other, to support a microservice style architecture for large scale websites. While decomposing the backend into microservices is a widely adopted approach to achieve flexibility in development and operation, most frontend solutions are still running as a monolithic application. Mosaic addresses this issue by using Fragments that are served by separate services and are composed together at runtime according to template definitions. As a result, Fragments can be iterated on very rapidly, be more flexible in technology choices, and can better benefit from the extreme development pace of today's frontend technologies.

Components

Tailor

https://github.com/zalando/tailor

Tailor is a layout service that brings microservices to the frontend by composing a website out of various Fragments (such as Header, Product, and Footer). Tailor achieves impressive Time to First Byte, as it asynchronously fetches multiple fragments, assembles their response streams, and outputs the final response. Tailor is partially inspired by Facebook’s BigPipe.

Skipper

https://github.com/zalando/skipper

Skipper is an extendable HTTP router for service composition. It's built on top a reverse proxy with the ability to select routes based on predicates, and to modify requests and responses with filters. It can be useful for all teams who are trying to deploy a microservices architecture and want (or need) to decouple routing from service logic.

Shaker

Shaker is a library and living showcase for UI components. It is used inside Zalando to provide a consistent user experience while developing Fragments in distributed and autonomous teams.

Quilt

Quilt is the template storage used by Tailor. It integrates with Zalando's team structure and provides a REST API that allows multiple development teams to manage their templates.

Innkeeper

https://github.com/zalando/innkeeper

Innkeeper is a RESTful API that stores routes, so that they can be fetched by Skipper. Innkeeper can export the routes in the eskip format. As routes are divided by paths, it allows multiple teams to manage their individual paths. It is developed in Scala.

Architecture Overview

References

The frontend taboo: a story of full stack microservices

https://www.youtube.com/watch?v=E0s3EGCefB0

Video talk by Moritz Grauel in September 2016

Voxxed Days Belgrade

...and...

https://gotocon.com/berlin-2016/presentations/show_talk.jsp?oid=8019

Talk by Luis Mineiro and Moritz Grauel in November 2016

GOTO Berlin

Open Source And The Mosaic Project

https://www.youtube.com/watch?v=pSlxIh6BHN4

Video talk by Lauri Apple and Dan Persa in July 2016

Virtual Microservices Summit

The frontend taboo - a story of full stack microservices

http://www.slideshare.net/lmineiro/the-frontend-taboo-a-story-of-full-stack-microservices

Presentation slides by Luis Mineiro in June 2016

JBCNCONF

Better streaming layouts for front-end microservices with Tailor

https://www.oreilly.com/ideas/better-streaming-layouts-for-frontend-microservices-with-tailor

Blogpost by Andrey Kuzmin and Vignesh Shanmugam in May 2016

O'Reilly

Frontend in the Microservices World

https://speakerdeck.com/d_kubyshkin/frontend-microservices

Presentation slides by Dmitriy Kubyshkin in March 2016

Zalando Frontend Meetup

Building a Reactive RESTful API with Akka HTTP and Slick

https://www.youtube.com/watch?v=g-s46Ewh-zo

Video talk by Dan Persa in February 2016

Microservices Meetup Munich

From Monolith to Microservices

https://www.youtube.com/watch?v=I9zpROdDf48

Video talk by Rodrigue Schaefer in February 2016

microXchg 2016

Building Our Own Open-Source HTTP Routing Solution

https://tech.zalando.de/blog/building-our-own-open-source-http-routing-solution

Blogpost by Arpad Ryszka in December 2015

Zalando Tech Blog, HTTP Traffic Shaping

From Jimmy to Microservices: Rebuilding Zalando’s Fashion Store

https://tech.zalando.de/blog/from-jimmy-to-microservices-rebuilding-zalandos-fashion-store

Blogpost by Dan Persa in October 2015

Zalando Tech Blog