Why Draw Your Architecture?

A picture is worth of thousand words

Soubhik Biswas
3 min readAug 18, 2022

How many times has it happened that you are trying to explain an architecture and you are feeling an urge to go to a board and draw it out to the audience?

Photo by Markus Spiske on Unsplash

Architecture of a software system can not be explained without diagrams. Here I have showcased a few diagrams which will help you design and explain any complex architecture.

  • Component Diagram:
    Components Diagram is a static diagram which is used to visualise system components and dependency among them. In complex micro service architecture, with a number of systems involved and dependent on each other, Component Diagram enables us to understand the platform system architecture. It also depicts how a system is communicating with another one, through real time APIs or asynchronously like Kafka. Following is a high level Component diagram of a Food Delivery App. Tool used: Draw.io
Component Diagram of a simplified Food Delivery System
  • Flow Diagram:
    As clear in the name, Flow Diagram helps to visualise the flow of any operation of the system. From this diagram, we will be able to understand how and which components are interacting for a particular scenario. Following is a high level Flow Diagram, when a customer orders a food. Ref: PlantUml Code , Tool used: Intellij with PlantUml plugin
Order Food Scenario Flow Diagram
  • Functional Architecture Diagram:
    A Functional Architecture is a set of actions or its sub-actions that defines the transformation of an input to a desired output performed by the system. This diagram presents a brief idea about the functional flow of a business feature. Following is a Functional Architecture diagram from ideation phase to redemption of a coupon in a Food delivery platform.
    Tool used: Draw.io
Functional Diagram of lifecycle of Coupon in Food Delivery App
  • Abstract Logical Architecture Diagram:
    An Abstract Logical Architecture diagram will define the system flow without using any technical jargons. It will define the role and responsibility of each logical component of the system. In complex scenarios, when multiple domains are involved, before moving into Components Diagram, this gives an overall idea of the logical segregation of the feature.
    Following is a Logical Architecture Diagram of Identifying a customer segment and redeeming an offer coupon in a Food Delivery App.
    Tool used: Draw.io
Abstract Logical Architecture Diagram of Redemption of Coupon in Food Delivery App

Conclusion:

Among the 4 diagrams, Component and Flow diagrams are the most necessary ones. The idea of giving examples, so that you can implement similar types of diagrams for your use cases when necessary.
Feel free to reach out if you want to discuss any other architecture diagram which is not discussed here.

--

--