Software Engineering Week 6
This week I learned more about Service Oriented Architecture (SOA) and how it can improve efficiency amongst large teams. In the initial design of our web servers, our system was monolithic. We had web servers for our front end and backend, and had a single database that was controlled by the backend. However this week we switched to SOA, allowing us to split up the two web servers, effectively making them microservices, and ran a independent databases on each. By doing this it was much more efficient for our team to work when split up, only requiring all hands when doing system testing. One important part of making our microservices communicate effectively was the use of message queues, specifically RabbitMQ. With message queues, each of the microservices could communicate with each other and keep track of changes in each database as well as track requests needing to be handled. One interesting thing I learned about RabbitMQ was the different methods in which messages can be sent to various subscribers. While orchestration is straight forward it can be less efficient, requiring changes to the service sending the messages when a subscriber needs to be added or deleted The other method, choreography, seems much better. Utilizing an exchange, this method does fanout meaning the service sending the message only has to send the message once, and the exchange can be configured to determine which subscribers can receive the message. The use of an exchange seems to be much more preferable as it offers a single point to configure subscribers, and prevents having to make code changes to the sending service.
Comments
Post a Comment