DEV Community

Sardar Mudassar Ali Khan
Sardar Mudassar Ali Khan

Posted on • Updated on

14 Must-Know Architectural Patterns in Software Development

๐—ช๐—ต๐—ฎ๐˜ ๐—ฎ๐—ฟ๐—ฒ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฎ๐—น ๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป๐˜€?
While designing software systems, you will likely come across the same design challenges over and over again. Architectural patterns make it easier to solve these issues by providing repeatable designs that address common situations.

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture. Architectural patterns are similar to software design patterns but have a broader scope.

Here are the most common architectural patterns:

๐Ÿญ. ๐—ฆ๐˜๐—ฎ๐˜๐—ถ๐—ฐ ๐—–๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜ ๐—›๐—ผ๐˜€๐˜๐—ถ๐—ป๐—ด: Used to optimize webpage loading time by storing static content separately from dynamic content

๐Ÿฎ. ๐—ฃ๐—ฒ๐—ฒ๐—ฟ-๐˜๐—ผ-๐—ฃ๐—ฒ๐—ฒ๐—ฟ: Involves multiple components called Peers, where a pear may function both as a client, requesting services from other peers, and as a server, providing services to other peers.

๐Ÿฏ. ๐—ฃ๐˜‚๐—ฏ๐—น๐—ถ๐˜€๐—ต๐—ฒ๐—ฟ-๐—ฆ๐˜‚๐—ฏ๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฏ๐—ฒ๐—ฟ: Used to send (publishes) relevant messages to places that have subscribed to a topic.

๐Ÿฐ. ๐—ฆ๐—ต๐—ฎ๐—ฟ๐—ฑ๐—ถ๐—ป๐—ด ๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป โ€“ Used to partition data in a database to speed commands or queries.

๐Ÿฑ. ๐—–๐—ถ๐—ฟ๐—ฐ๐˜‚๐—ถ๐˜ ๐—•๐—ฟ๐—ฒ๐—ฎ๐—ธ๐—ฒ๐—ฟ: Helps make systems more fault tolerant by minimizing the effects of a hazard by rerouting traffic to another service.

๐Ÿฒ. ๐—Ÿ๐—ฎ๐˜†๐—ฒ๐—ฟ๐—ฒ๐—ฑ ๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป: Generally used to develop applications that include groups of subtasks that execute in a specific order.

๐Ÿณ. ๐—–๐—น๐—ถ๐—ฒ๐—ป๐˜-๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ: A peer-to-peer architecture that is comprised of a client, which requests a service, and a server, which provides the service.

๐Ÿด. ๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ-๐—ฆ๐—น๐—ฎ๐˜ƒ๐—ฒ: Consists of two components; the master distributes the work among identical slaves and computes a final result from the results which the slaves return.

๐Ÿต. ๐—ฃ๐—ถ๐—ฝ๐—ฒ-๐—™๐—ถ๐—น๐˜๐—ฒ๐—ฟ: Used to structure systems that produce and process a stream of data.

๐Ÿญ๐Ÿฌ. ๐—˜๐˜ƒ๐—ฒ๐—ป๐˜-๐——๐—ฟ๐—ถ๐˜ƒ๐—ฒ๐—ป: Uses events to trigger and communicate between decoupled services.

๐Ÿญ๐Ÿญ. ๐— ๐—ผ๐—ฑ๐—ฒ๐—น-๐—ฉ๐—ถ๐—ฒ๐˜„-๐—–๐—ผ๐—ป๐˜๐—ฟ๐—ผ๐—น๐—น๐—ฒ๐—ฟ: Divides an application into three components. The model contains the application's data and main functionality; the view displays data and interacts with the user; and the controller handles user input and acts as the mediator between the model and the view.

๐Ÿญ๐Ÿฎ. ๐—œ๐—ป๐˜๐—ฒ๐—ฟ๐—ฝ๐—ฟ๐—ฒ๐˜๐—ฒ๐—ฟ: Used to interpret a higher level language to a lower level language to execute a series of commands directly.

๐Ÿญ๐Ÿฏ. ๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ถ๐—ฐ๐—ฒ๐˜€: Used to create multiple services that work interdependently to create a larger application.

๐Ÿญ๐Ÿฐ. ๐—–๐—ผ๐—บ๐—บ๐—ฎ๐—ป๐—ฑ ๐—ค๐˜‚๐—ฒ๐—ฟ๐˜† ๐—ฅ๐—ฒ๐˜€๐—ฝ๐—ผ๐—ป๐˜€๐—ถ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—ฆ๐—ฒ๐—ด๐—ฟ๐—ฒ๐—ด๐—ฎ๐˜๐—ถ๐—ผ๐—ป: Used to separate read and write activities to provide greater stability, scalability, and performance.

Top comments (0)