Skip to main content

Posts

Showing posts from August, 2022

Decomposition Patterns - Part One

Topic: Software Design                                                                                                        Level: Intermediate Decomposition Patterns - What? Breaking down the architectural design with respect to a defined context 1. Decompose By Business Capability Decomposing the service architecture based on an organization's business functional units that are delivering around the business values. Understanding the areas of business models, operations, structure, processes, and each unit's isolation boundary aids in designing services that correspond to a particular functional business capability. For instance, a business that provides a cab/ride service has the following functional capabilities like  FeeEstimateCalculatorManagement RideAvailabilityManagement RideCatalogManagement PaymentModeManagement RideReportAnalyticsManagement LogisticsManagment ProfilesManagement  Each of the capabilities is decoupled from each other with different business operatio

Microservices - Design Patterns

Topic: Software Design                                                                                                        Level: Intermediate Microservices - What? Microservice is a software design methodology, delegated to perform an isolated decoupled single functionality (following the Single-Responsibility Principle from object-oriented SOLID design principles).  Moreover, microservices by design, are decoupled making it easy to develop, test, maintain, deploy, configure, monitor and scale modules independently. Microservices - Why? Having one microservice would not be helpful without it being able to interact with other microservices, to aid in bringing an end-to-end business solution. So arises a question, how can I design a software system that is resilient, decentralized, fault-tolerant, scalable, maintainable, and extensible that complies with the microservice architecture? Design Patterns - What? Design patterns are solutions for commonly occurring problems within a given