@startuml
title Before: Mutex Poisoning Could Panic Runtime Paths
skinparam backgroundColor #FFFFFF
skinparam defaultFontColor #000000
skinparam ArrowColor #111827
skinparam componentStyle rectangle
skinparam defaultFontName Consolas

component "InMemoryAdapter / Cache / RateLimiter" as adapter #FFECEC
component "mutex.lock().unwrap()" as lock_unwrap #FECACA
component "shared state access" as state_access #FFF7ED
component "panic" as panic_node #F87171
component "request handling flow" as flow #E8F5E9

flow --> adapter
adapter --> lock_unwrap
lock_unwrap --> state_access : lock ok
lock_unwrap --> panic_node : poisoned mutex
state_access --> flow
@enduml
