{"action":"closed","issue":{"url":"https://api.github.com/repos/lnug/speakers/issues/32","labels_url":"https://api.github.com/repos/lnug/speakers/issues/32/labels{/name}","comments_url":"https://api.github.com/repos/lnug/speakers/issues/32/comments","events_url":"https://api.github.com/repos/lnug/speakers/issues/32/events","html_url":"https://github.com/lnug/speakers/issues/32","id":75650419,"number":32,"title":"OpenComponents as microservices in the front-end world","user":{"login":"matteofigus","id":1789893,"avatar_url":"https://avatars.githubusercontent.com/u/1789893?v=3","gravatar_id":"","url":"https://api.github.com/users/matteofigus","html_url":"https://github.com/matteofigus","followers_url":"https://api.github.com/users/matteofigus/followers","following_url":"https://api.github.com/users/matteofigus/following{/other_user}","gists_url":"https://api.github.com/users/matteofigus/gists{/gist_id}","starred_url":"https://api.github.com/users/matteofigus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matteofigus/subscriptions","organizations_url":"https://api.github.com/users/matteofigus/orgs","repos_url":"https://api.github.com/users/matteofigus/repos","events_url":"https://api.github.com/users/matteofigus/events{/privacy}","received_events_url":"https://api.github.com/users/matteofigus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/lnug/speakers/labels/Accepted%20&%20Scheduled","name":"Accepted & Scheduled","color":"009800"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/lnug/speakers/milestones/5","html_url":"https://github.com/lnug/speakers/milestones/May%2027th%202015","labels_url":"https://api.github.com/repos/lnug/speakers/milestones/5/labels","id":927477,"number":5,"title":"May 27th 2015","description":"","creator":{"login":"orliesaurus","id":4209733,"avatar_url":"https://avatars.githubusercontent.com/u/4209733?v=3","gravatar_id":"","url":"https://api.github.com/users/orliesaurus","html_url":"https://github.com/orliesaurus","followers_url":"https://api.github.com/users/orliesaurus/followers","following_url":"https://api.github.com/users/orliesaurus/following{/other_user}","gists_url":"https://api.github.com/users/orliesaurus/gists{/gist_id}","starred_url":"https://api.github.com/users/orliesaurus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orliesaurus/subscriptions","organizations_url":"https://api.github.com/users/orliesaurus/orgs","repos_url":"https://api.github.com/users/orliesaurus/repos","events_url":"https://api.github.com/users/orliesaurus/events{/privacy}","received_events_url":"https://api.github.com/users/orliesaurus/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":3,"state":"open","created_at":"2015-01-08T18:24:57Z","updated_at":"2015-05-28T17:18:24Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2015-05-12T15:59:42Z","updated_at":"2015-05-28T17:18:24Z","closed_at":"2015-05-28T17:18:24Z","body":"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.\r\n\r\nIn 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.\r\n\r\nDuring this talk I’m going to speak about how we tried to approach to components at OpenTable. After breaking our monolithic back-end into smaller parts, we tried to break the front-end into smaller parts too, called micro-sites. Then, 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. The result is OpenComponents, a framework that we recently open-sourced.\r\n\r\nReferences:\r\nhttp://tech.opentable.co.uk/blog/2015/02/09/dismantling-the-monolith-microsites-at-opentable/\r\nhttps://github.com/opentable/oc"}}