DRAFT: Invalidating Page Snippets

The current TALES support for memcached does not support invalidation when the data changes, relying on timed expiration instead. Invalidation would be preferable for users, particularly when users want to see the results of their own work (see 593054). Invalidations from scripts and other work done outside of the application are not as important for this case.

As a Launchpad User
I want fast-rendering Launchpad pages that immediately reflect my actions
so that I'm not confused by some parts of Launchpad seeming to not be affected by changes I have made.

Invalidations are tricky, as we expected and then explored in the webservice work.

Rationale

Cached page snippets have proved to give us benefit, thanks to our current TALES implementation. However, even before we have significantly deployed them, we are getting bugs about user confusion.

Moreover, the current design does not clearly enforce a page structure that encourages safe cacheing. This is an advantage for testing and easy deployment, but often getting good cacheing characteristics will involve refactoring the page anyway.

Stakeholders

Launchpad users.

Constraints

What MUST the new behaviour provide?

What MUST it not do?

Unnecessary Desires

What are ideas that might be desirable, but are *not* constraints for this proposal?

Success

How will we know when we are done?

How will we measure how well we have done?

Subfeatures

OPTIONAL

Other LaunchpadEnhancementProposals that form a part of this one.

Implementation Proposal

Description

How will this work?

Workflows

OPTIONAL

What are the workflows for this feature? Provide mockups for each workflow.

You do not have to get the mockups and workflows right at this point. In fact, it is better to have several alternatives, delaying deciding on the final set of workflows until the last responsible moment.

Risks

What are the risks associated with this implementation? Consider risks that may make the implementation fail to meet its goals, risks that may make the delivery time slip, security risks, performance risks, and usability/documentation risks.

Experiment 1

It will often be appropriate to construct one or more experiments to address the identified risks before proceeding to the implementation step. Make sure that the effort to construct experiments is significantly less than the effort expected to be expended on the implementation!

Goal

What is the goal of the experiment? What risk or risks do you intend to explore?

Design

How will the experiment work?

Result

How did it turn out?

Thoughts?

Put everything else here.

Foundations/Proposals/InvalidatingPageSnippets (last edited 2010-06-22 17:23:09 by gary)