Problem Statement
Differentiate Subject, BehaviorSubject, ReplaySubject, and AsyncSubject with use cases.
Explanation
Subject: multicast without initial value (events). BehaviorSubject: stores last value (state). ReplaySubject: replays N values to new subscribers (audit logs). AsyncSubject: emits last value on completion (one-time results).