Lambda's concurrency model looks simple at first sight. It seems like a matter of "how many functions run at the same time". But in reality four different mechanisms are layered on top of each other — the account-wide limit, per-function Reserved concurrency, Provisioned concurrency, and the burst limit — and if you don't understand this layered structure, you can't explain "why my Lambda is throwing 429s" or "why my function is slow because of another team's function".
The same goes for error handling. The three invocation styles — synchronous, asynchronous, and ESM — react completely differently when an error occurs