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.