Currently, our infrastructure is aimed at public-facing websites that can be aggressively cached. This means that developers should consider the following when writing code:
- Operations that take a significant amount of time should generally be run on cron where possible.
- Expensive operations (in CPU or memory) that do not change often should be cached.
- The AJAX loader system should be used to load in dynamic widgets that cannot be cached, including forms. This type of widget should be limited to only essential components. As often as possible, avoid setting pages to ignore the caching layer.