Use repositories for persistence operations that are named by intent:
get_by_idsavedeletefind_active_users
Use query handlers when reads become more complex than simple repository lookups. Keep query objects immutable and easy to log.
Use facades for coarse feature APIs that coordinate repositories, services, outbox messages, and external APIs.