Yeh I think that is probably the easiest route. Reader: - Query tables, store results in RAM. - Watch the file for changes. - On change, re-run query, diff with RAM results. - Take actions on diff result (like update the view). Writer: - Write to tables as normal.