-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move view/table/search invalidation workflow out of saveChanges #46
Comments
Can you provide any background info on why we would want to do this? |
Good question :) The status quo is problematic for 2 main reasons:
|
I spent a little time trying to sort the problem f8f2bf8, but that didn't get me terribly far - it was mainly to reacquaint myself with the workflow. The biggest takeaway was that the current design creates a bunch of ModifiedSubjects that either get processed synchronously, or placed on the queue. I think we need to break this up into two (or possibly more, depending on how you break this up) tasks that can be done synchrously or asynchronously, depending on what's been passed to the Tripod constructor:
So it makes sense for 1) to be able to schedule 2), but there can't be an assumption that 2) will be a background task. |
Currently when Tripod saves a changeset it:
getOperationsForImpactedData
whichModifiedSubject
object for each task and divvy them up into arrays of synchronous and asynchronous jobs.It seems like
saveChanges
should only concern itself with 1 & 2. The methods to determine the affected views, tables, and search should be moved toMongoTripodViews
,MongoTripodTables
, andMongoSearchProvider
accordingly.Obviously, we still need to be able to address synchronous operations.
The information needed to be able to do this successfully are:
The text was updated successfully, but these errors were encountered: