Data access is already modular - that’s what the lib/datasource plugins do. The most commonly used one is the rrd plugin, but there is very little “special” rrd code outside of that plugin (one line in the command-line tool to tell it where to find the
rrdtool binary). In the editor, the target picker there is Cacti-specific currently, but it’s planned to make that plugin driven too. You can paste in targets for other data sources with no issues though.
Vis.js looks like it could do some of the same things as Weathermap, yes. It doesn’t appear to have a link style that is the same as the current one though, and maps would look quite a bit different from the same configuration, I think.