Gaia/Architecture Transition Proposal

From MozillaWiki
< Gaia
Revision as of 13:32, 20 March 2015 by Steakdepapillon (talk | contribs) (Created page with "= Transition Proposal = This is a proposal to migrate our current codebase to the new and unified architecture for Gaia apps mentioned in the Gaia/Architecture Proposal|Arc...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Transition Proposal

This is a proposal to migrate our current codebase to the new and unified architecture for Gaia apps mentioned in the Architecture Proposal.

This documentation tries to split the transition process into a multi-steps process. The documentation also try to see how parts of those steps can be done concurrently to avoid a pure linear process.

Step 0: Mirror the architecture proposal into functional teams

The proposed architecture is about strict decoupling of the front-end and the back-end, and focusing on small pieces. This ultimately lead to fine grained parts, which can be classified into 3 high-level categories.

Those categories are:

  • Front-End
  • Back-End
  • Toolkit

Impact on functional teams

As of today, individuals are often working on those 3 categories at the same time. While some may focus more on one aspect over others, this model merge the responsibilities of all categories and distract individuals.

It also prevent categories to evolve independently and results into a general slow down.

In order to mitigate those issues it is proposed to create 2 new functional teams:

  • Front-End
  • Toolkit

The existing functional teams will still exists, but with a refocus on the pure back-end of an application.

This solution should also provide a better concerns isolation. For example, most of the time UX/UI concerns are unrelated to the back-end logic. Or many WebAPIs changes does not concerns the front-end logic.

The new structure can be visualize as multiple layers of concerns wrapping each others.

Gaia Transition Proposal Teams Layers.png

Impact on User Story