Opened 6 years ago
Last modified 4 years ago
#3148 assigned project-idea
[AngularJS project] Optimised communication between backend and frontend
Reported by: | tardyp | Owned by: | tothandras |
---|---|---|---|
Priority: | major | Milestone: | 0.9.+ |
Version: | master | Keywords: | web, optimization |
Cc: |
Description
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.
Change History (9)
comment:1 Changed 6 years ago by dustin
- Keywords optimization added
comment:2 Changed 6 years ago by tardyp
comment:3 Changed 6 years ago by tardyp
Here is a related bug: http://trac.buildbot.net/ticket/3225
This bug needs to be solved for nine beta (freezing when opening several tabs is not acceptable). This bug will make the student more aware of the current architecture and its drawbacks.
comment:4 Changed 6 years ago by tardyp
related issue: http://trac.buildbot.net/ticket/3233
comment:5 Changed 6 years ago by tardyp
related issue: http://trac.buildbot.net/ticket/3235
comment:6 Changed 6 years ago by tardyp
- Owner set to tothandras
- Status changed from new to assigned
comment:7 Changed 5 years ago by dustin
@tardyp -- is this finished? Is there enough left here for a GSoC project?
comment:8 Changed 5 years ago by tardyp
This project has been worked on last year indeed, but actually the resulting optimization was not good enough. There is indeed some work left in order to make it definitly work.
I have some doubts about the real feasability of it given the current browserts technology, but this is for sure a very interresting project for a student interrested into live data
relevent source code to be rewritten is located here:
https://github.com/buildbot/buildbot/tree/master/www/base/src/app/common/services/buildbot