The map
- Not started
- In progress
- Done
- Builds on
- 01The containerBeans, wiring and auto-configuration0/4
- 02A request's journeyThreads, filters, proxies, transactions0/4
- 03Data and productionQueries, pools, signals and tests0/4
- 04Next: system designSame ideas, at service scale
- BulkheadLibrary ↗Tomcat's thread pool and Hikari's connection pool are bulkheads already. Give each downstream dependency its own, so one slow service can't take every thread.
- TimeoutLibrary ↗A request holds a thread and often a connection until it ends. Timeouts on every outgoing call are what give them back.
- Circuit breakerLibrary ↗When a dependency keeps failing, stop calling it for a while; in Spring this is usually Resilience4j, applied through the same kind of proxy as @Transactional.
- Cache-asideLibrary ↗@Cacheable is cache-aside behind a proxy: look in the cache, otherwise load and store. The self-invocation trap applies here too.
Written for Spring Boot 3.x on Spring Framework 6.x and Java 17 or later; the links point to the 3.5 and 6.2 reference docs.