avatarJeannine Proctor

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

1091

Abstract

rington</a>)</figcaption></figure><p id="9f5f">Creative vision and patience are required to put the pieces together for a composite image. Image processing can be an all-consuming task, not for the faint of heart.</p><p id="e502">A composite is all about merging two or more images to become one.</p><figure id="7bd6"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*up7StggR0YpMOifK8VdnCg.jpeg"><figcaption>“Entrance To The Body Shop” (Images/Composite by Author, © <a href="https://medium.com/@tbh1930">Todd B Harrington</a>)</figcaption></figure><p id="7228">Post-capture processing for a composite goes substantially beyond normal color, light, and exposure adjustments.</p><figure id="9c2d"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*aSqSKlUGdDd5Qw2hlL4UUQ.jpeg"><figcaption>“Reaching Indian” (<a href="https://www.pierrericheart.com/">Pierre Riche</a>/With Permission) (Composite by Author, © <a href="https://medium.com/@tbh1930">Todd B Harrington</a>)</figcaption></figure><p id="43cf">Merging the individual components is the task at hand when

Options

creating a composite. Each of the images in the “Full Moon Series” is the result of the modification of two or more images that were then joined by layering, masking, and transparency techniques.</p><p id="3d6c">Composites are a lot of work, but the outcome can be quite rewarding.</p><p id="0e8f">More articles on Medium from this writer <a href="https://readmedium.com/medium-content-index-b050db5ce570"><b><i>here</i></b></a>.</p><div id="5142" class="link-block"> <a href="https://medium.com/@tbh1930/membership"> <div> <div> <h2>Join Medium with my referral link - Todd B Harrington</h2> <div><h3>Read every story from Todd B Harrington (and thousands of other writers on Medium). Your membership fee directly…</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*7tVbCKL_dj3X78LH)"></div> </div> </div> </a> </div></article></body>

Understanding the Trade-offs between Monolithic, Modular, and Microservices Architectures

Understanding the differences between monolithic, modular, and microservices architectures is critical when developing applications. Monolithic applications are enormous, single-tiered applications that encompass several components. These components are tightly coupled, meaning that changes made to one component may require changes to other application components.

Conversely, a modular architecture breaks up an application into smaller, independently deployable components. These components are loosely coupled and can be changed without impacting other system parts.

The microservices architecture further breaks down applications into more minor services that can exist independently and scale as needed. In addition, each service is aware of the others and can communicate with each other across a network, making the system more flexible and scalable.

Monoliths

Monolithic applications are relatively simple and efficient to develop since all code is in a single package, making it easy to find and implement changes. Additionally, testing is more straightforward in a monolithic architecture since all components are in the same package.

However, monolithic architectures can become challenging to maintain as they grow. As a single package, they can only update or scale without impacting the rest of the system, which can delay releases and updates. Additionally, if one component fails, it can affect the entire system, causing costly outages.

Modular

Modular architectures separate components into independent, deployable components. This improves scalability and maintainability since components can be updated or changed without impacting other system parts. Modules also improve fault tolerance and can help ensure a smoother user experience.

However, modular architectures are typically more complex to develop since components must be able to communicate with each other across a network, and each component must be tested and deployed separately.

Microservices

Microservices architectures provide even greater scalability and maintainability than modular architectures. Each service is loosely coupled, meaning it can be updated or changed without impacting other services, and services can scale independently. Additionally, microservices can be written in different languages, allowing developers to use the language best suited to a specific task.

The downside of microservices is that they can be more complex to develop and test, as communication between services requires more planning and coordination. Additionally, services can take longer to deploy since they must be tested and deployed individually.

Tech Insights, 2021

APIs

APIs provide a way for applications to communicate with each other and transfer data. In monolithic architectures, APIs can send data from one component to another. In modular architectures, APIs can communicate between separate modules, while in microservices architectures, APIs can communicate between different services.

In terms of complexity, monolithic architectures require the least amount of planning since all components are in the same package. Modular architectures require more planning since components must be able to communicate with each other. In contrast, microservices architectures require the most planning as services must be able to communicate with each other via APIs. Additionally, microservices architectures may require additional security measures to ensure each service is secure.

Latency

Latency is the time it takes for a data request to reach its destination and receive a response. In a monolithic architecture, the latency is typically low since all components are in the same package. Modular architectures also have relatively low latency as separate components can communicate with each other quickly.

In microservices architectures, latency depends on the speed of communication between services. If services have to communicate across a network, latency can increase significantly. Additionally, microservices architectures require additional security measures to ensure that requests are handled securely, which can also increase latency.

Latency can be affected by various factors, such as network congestion, limited network bandwidth, slow hardware, and inefficient code. Requests that traverse multiple networks, such as the internet, will encounter more significant latency. To address this, techniques such as caching and code optimization may be applied to decrease latency. At the same time, content delivery networks (CDNs) can disperse requests over multiple servers, ultimately reducing latency.

Final thoughts

The choice of monolithic, modular, or microservices architecture depends on the application’s specific needs. Monoliths are often simpler to develop and test but may become difficult to maintain and scale as the application grows. Modular architectures improve scalability and maintainability, although they can be more complex to develop. Finally, microservices provide the most significant level of scalability and maintainability, although they are often the most complex to build and test.

Additional Reading and Resources (mixture of free and subscription services):

For PM, PMM, & ML Bits, Bytes, and Bots

For Education & Analytics Education on Education

Product Management
Product Development
Product Architecture
Professional Development
Recommended from ReadMedium