Exercise 1
You are part of a development team that has been assigned an overall task to build a centralized system to book hotel rooms for different hotels. The clients require the front-end(UI), payment, and customer functionalities to be designed. Also, these are the individual requirements of each hotel:
- Hotel One - payments should be allowed only through PayPal.
- Hotel Two - payments should be allowed either through PayPal or Debit Cards or Bitcoin.
- Hotel Three - payments should be disabled and bookings should be done over the counter or reception.
Using the above requirements, draw the application architecture that you would need to deliver a solution for the above problem.
Try to think through both the functional and technical requirements, and elaborate your reasoning on choosing a microservice or monolith based approach.