Software Engineering, Software Architecture, Microservices, Distributed Systems, Systems Thinking.
account balance can be eventually consistent with failure handling in case of inconsistency (such as cancelling the booking). Hence your accounts +transactions is one context and bookings is another. Secondly, the most difficult part of extending a system is in understanding it. If a developer