Opened 3 years ago

Last modified 9 months 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 3 years ago by dustin

  • Keywords optimization added

comment:2 Changed 3 years ago by tardyp

comment:3 Changed 3 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:6 Changed 3 years ago by tardyp

  • Owner set to tothandras
  • Status changed from new to assigned

comment:7 Changed 22 months ago by dustin

@tardyp -- is this finished? Is there enough left here for a GSoC project?

comment:8 Changed 22 months 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

Note: See TracTickets for help on using tickets.