I would say both. Teach them the Leaky Bucket algorithm and then show them how it's properly applied for rate limiting. Teach circuit breakers, exponential backoff, etc., both from a "here's how it works as a consumer of the library" perspective and a "now let's see how this is implemented behind the scenes" perspective.
Show them OpenTelemetry, and then have folks understand instrumentation, saturated counters, etc., by looking behind the curtains.
Show them that Insertion Sort is adaptive and can beat QuickSort under the right circumstances, and use it as an excuse to explain pipelining, branch prediction, hardware affinity, etc., etc., etc. Then get then to understand real applications of this stuff for electronic trading, ultra low latency environments, etc with real world examples. Have then compete to implement a subset of FIX for.
There are very few people out there able to navigate theory and practice at a reasonable level of understanding.