Work Package #45408

Frontend / Page Cache

Added by Robert Lemke over 6 years ago. Updated over 6 years ago.

Status:
Accepted
Priority:
Should have
Assignee:
Category:
General / Project
Target version:
Start date:
2013-03-04
Due date:
2013-04-30
% Done:

10%

Estimated time:
90.00 h
Spent time:

Description

Basic Frontend / Page Cache

  • Target Audience: users who browse the frontend of a Neos website
  • Responsible: Robert Lemke
  • Implemented by: Robert Lemke
  • Amount: 15 work days
  • Version: must have for 1.0
  • Planned Implementation Timeframe: March - April 2013

Motivation

Neos does not, so far, provide any sort of page cache. The has been from the beginning to rely on established HTTP mechanisms instead and use cache control directives and mechanisms like Edge Side Includes instead. The advantage of this approach is to not re-invent front end caching and being able to delegate this to highly performant proxies like Varnish.

Neos should, however, be production ready as is, without the need for a reverse proxy. Therefore Flow should provide a basic reverse proxy itself and thus be able to cache responses if no Varnish is used. As a first step, Flow has been refactored in 2011 / 2012 to provide or more modular bootstrap and an HTTP foundation. What's missing now is the actual usage of cache headers in Neos and a rudimentary reverse proxy integrated into Flow (and thus used by Neos).

Goal

Implement a reverse proxy for TYPO3 Flow which can basically cache HTTP responses according to the mechanisms specified in RFC 2616 and deliver them to a client if a cached response is available. The reverse proxy should also support purging / banning of single or multiple cache entries – this mechanism can then be used by Neos for invalidating cache entries of pages which have been modified.

Deliverables

  • MUST: Reverse Proxy for TYPO3 Flow which can basically cache HTTP responses and return them on request
  • MUST: Neos sets cache control headers / expiry times according to some global configuration
  • MUST: Reverse Proxy allows for purging / banning single or multiple cache entries
  • MUST: Documentation
  • COULD: E-Tag Support
  • MAYBE: Edge Side Includes support

typo3neos-distribution-base-45408.pdf (42.9 KB) Sebastian Kurfuerst, 2013-02-16 15:03

History

#1 Updated by Robert Lemke over 6 years ago

  • Target version set to 1.0 beta 1

#2 Updated by Sebastian Kurfuerst over 6 years ago

  • Assignee set to Robert Lemke

#3 Updated by Sebastian Kurfuerst over 6 years ago

  • Status changed from New to Accepted

#4 Updated by Sebastian Kurfuerst over 6 years ago

Has been discussed with Jan-Hendrik from the EAB on 12.02.2013; and has been accepted on 15.02.2013 by the EAB.
(The attached PDF is a snapshot of this work package at the time of acceptance.)

So, Robert, you can schedule this work package in your day-to-day calendar and implement it then -- can't wait to see it in Neos 1.0 :-)

Another side-note: Please do not forget to add comments to this work package and update "% done" while you are working on this package.

Greets, Sebastian

#5 Updated by Sebastian Kurfuerst over 6 years ago

  • Due date set to 2013-04-30
  • Start date changed from 2013-02-12 to 2013-03-04
  • Estimated time set to 90.00 h

#6 Updated by Aske Ertmann over 6 years ago

  • Category set to General / Project

#7 Updated by Robert Lemke over 6 years ago

  • % Done changed from 0 to 10

#8 Updated by Sebastian Kurfuerst over 6 years ago

Current status as discussed with Robert:

  • Robert will work on it during T3CON SF (starting May 27.)
  • We will have the next review meeting on 14 June at 14:30. Goal is to have code merged or in the review by then.

Also available in: Atom PDF