Components as Microservices in the Front-End World
Writing front-end code today is very challenging when you have to be resilient and robust in a big corporation. Working on a website that involves dozens of engineers based in three different continents, I learned that the complexity lies not only within the code itself. Allowing people to develop new features and deploy the code multiple times a day, keeping it up and running, is hard to achieve: we want small teams to be independent and not to interfere each other, in order to be quick and happy, but we also want to optimise cooperation when it is needed.
In the front-end world components are very small units of code providing application functionality that are all connected in order to become a web-site.
During this talk I’m going to speak about how we tried to approach to components at OpenTable. Following the SOA principles, we tried to elevate components as services, in order to make engineers able to create and consume them via clear and well-defined contracts and interfaces. This allowed us to put in place the infrastructure to optimise testing and to have hundreds of changes live every day without conflicts.
Outline/structure of the Session
The first part will introduce to the audience the problem, the cultural challenges we faced and our business' needs.
I'll proceed with the case study, presenting some of the solutions we tried.
At the end I'll demo some tools and present some case studies to better explain how we are trying to be more agile on day to day problems.
The audience will understand some of the problems related to monolithic front-end applications and some of the patterns we used in order to approach to the code and our business needs. Concept of micro-sites, atomic web-design, UI components, micro-services, and micro-teams.
Software engineers, product managers
Nothing special, projector for my slides as usual.