hussainarslan / proj-hnr-assignment3

0 stars 0 forks source link

Microservices #3

Closed hussainarslan closed 1 year ago

hussainarslan commented 1 year ago

What microservices are and how they are applied in different projects

hussainarslan commented 1 year ago

Microservices

What is it? Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. These services are owned by small, self-contained teams.

Benefits Highly maintainable and testable - enables rapid and frequent development and deployment Loosely coupled with other services - enables a team to work independently the majority of time on their service(s) without being impacted by changes to other services and without affecting other services Independently deployable - enables a team to deploy their service without having to coordinate with other teams Capable of being developed by a small team - essential for high productivity by avoiding the high communication head of large teams Services communicate using either synchronous protocols such as HTTP/REST or asynchronous protocols such as AMQP. Services can be developed and deployed independently of one another. Each service has its own database. in order to be decoupled from other services. Data consistency between services is maintained using the Saga Pattern This solution has a number of benefits: Enables the continuous delivery and deployment of large, complex applications. Improved maintainability - each service is relatively small and so is easier to understand and change Better testability - services are smaller and faster to test Better deployability - services can be deployed independently It enables you to organize the development effort around multiple, autonomous teams. Each (so called two pizza) team owns and is responsible for one or more services. Each team can develop, test, deploy and scale their services independently of all of the other teams. Each microservice is relatively small: Easier for a developer to understand The IDE is faster making developers more productive The application starts faster, which makes developers more productive, and speeds up deployments Improved fault isolation. For example, if there is a memory leak in one service then only that service will be affected. The other services will continue to handle requests. In comparison, one misbehaving component of a monolithic architecture can bring down the entire system. Eliminates any long-term commitment to a technology stack. When developing a new service you can pick a new technology stack. Similarly, when making major changes to an existing service you can rewrite it using a new technology stack.

WooCommerce Considering all the information above about microservices, WooCommerce has implemented these to supplement the user experience and make it easier to add a lot of different functionalities to their product by using them. Some of these examples include eBay integration for WooCommerce, estimated delivery date and time and even currency switcher.

Plugins - WooCommerce - WooCommerce

Above is a link for some plugins that are used by WooCommerce and may be considered microservices. Furthermore, there are some APIs used by WooCommerce. These include Stripe, WooSidebars, In Stock Notifications, Pre-Orders and Google Listings & Ads.

Extensions - API Manager - WooCommerce