Architect a robust caching mechanism for a business banking application that displays real-time transaction ledgers while ensuring data consistency.
Implement process_ledger_events(events, capacity). Each event is either ['update', account_id, version, transactions] or ['read', account_id, minimum_version]. An update replaces an account's cached ledger only when its version is newer. A read returns [version, transactions] only when the cached version is at least minimum_version; otherwise return None. Evict the least recently used account when the capacity is exceeded. Return results for read events in order.
def process_ledger_events(events, capacity):