The summary.
ASSUME MESSAGES ARRIVE TWICE AND OUT OF ORDER
Record what has been processed and check before acting. And configure a destination for messages that cannot be processed, or a failing message retries indefinitely.
ALERT WHEN A SCHEDULED JOB DOES NOT RUN, NOT ONLY WHEN IT FAILS
Silent cessation is invisible for months. And check the time zone — schedules run at unexpected local times otherwise.
KEEP COORDINATION IN WORKFLOWS AND THE ACTUAL WORK IN SERVICES
A defined workflow is visible and its execution history inspectable, unlike a chain of functions calling each other.
MOST ORGANISATIONS NEED LESS PIPELINE THAN THEY BUILD
Loading into the analytical database and transforming there with scheduled queries covers a great deal. Partition by date — it makes reprocessing one day possible and controls cost.
Design every pipeline to produce the same result when rerun.
ACCESS SECRETS USING THE IDENTITY ATTACHED TO THE RESOURCE
No credential is then needed to obtain the credential. And never put secrets in repositories, committed configuration or container images — they persist permanently.
VERIFY THAT A PROTECTED APPLICATION CANNOT BE REACHED DIRECTLY
Otherwise the protection is optional.