Page MenuHomePhabricator

Simplify change-propagation configuration
Open, Needs TriagePublic


Currently ChangeProp acts as a very-much simplified version of the future dependency tracking system with a set of static rules that define dependencies. The rule specifies the kafka topic to listen to, some matchers on the event to filter the topic and a set of actions to take. An example of the configuration we have for change-prop could be found here

However, as the number of edge cases and resource types managed by the system grows, the configuration becomes very verbose and insanely hard to manage. Under the edge cases, I mean that certain resources don't exist under certain domains or namespaces. For example, if an article on Wikipedia change, we need to update RB HTML, RB mobile and RB summary. But, if an article change on Wiktionary, we need to update RB HTML and RB definitions instead. As the number of such cases grows, the config grows as well.

We need to rethink this and come up with a better DSL for defining a static graph of dependencies and actions. I'm making this task a part of the dependency tracking tree since we need to have in mind the future while designing the new DSL and we might learn some valuable lessons here.