[AngularJS project] Optimised communication between backend and frontend
|Reported by:||tardyp||Owned by:||tothandras|
Communication between backend and frontend is a tricky problem.
Web browser must get the current state of an object, and then register to a message queue to automatically update its internal model.
A good prior art for such system is firebase: https://www.firebase.com/docs/
Buildbot nine implement similar ideas in buildbotServices, but has a number of bottlenecks.
- Based on restangular, the data is mixed-in with restangular methods, which prevents to walk over all attributes of a dictionary
- There are race conditions between initial http get, and message queue updates, resulting in out of sync model
- The data model being fully generic prevents adding some decoration to the model depending on the type. Example is email parsing of change_owner is made in several place (search emailRegex in the code)
- Too much http requests are needed to make the system work
Student will analyse current implement implementation, and propose changes to address those issues. Probably a full rewrite will be necessary.