Background Jobs That Remember Whose Work They Are Doing
Slow work like sending email or resizing images happens in the background, long after the request ends. Here is how our jobs carry the right customer...
21 posts
Slow work like sending email or resizing images happens in the background, long after the request ends. Here is how our jobs carry the right customer...
Plans include limits on things like websites, storage and categories. Here is how we enforce them clearly, with notices instead of silent failures and...
Hiding an action in the interface does not stop someone from performing it. Here is how we check permissions on every page, action, download and backg...
In a platform where many customers share one system, every line of code must know whose data it is touching. Here is the checklist we use to keep it t...
A setting can live in the database, in server environment values or in a default configuration file. Here is the order we check them in and why it mat...
When records come from another system, keeping their original identifiers makes imports safe to repeat and relationships possible to rebuild. Here is...
Some of our code runs on public pages with no customer account at all. Here is how we write shared code that works safely in both places without crash...
A website might be reachable at a platform address and its own domain. Here is how we choose the preferred address for canonical links, sitemaps and r...
In a platform where one person can belong to several customer accounts, a simple list of users can leak names across accounts. Here is the pattern we...