Skip to main content

Using the C4 Model Notations in the Anansi Tool

· 4 min read
Vinay Kumar S P
Devops Eng.

In the world of software development, effectively communicating the architecture of a system is paramount. One approach that has gained popularity for its simplicity and effectiveness is the C4 model. In this blog post, we'll explore how you can implement the C4 model in Anansi, our powerful metadata management tool. This combination provides a structured and visual way to document, understand, and communicate the architecture of software systems.

Introduction

Introduction to C4

The C4 model, developed by Simon Brown, is a framework designed to visualize the architecture of software systems. It consists of four levels of abstraction, each represented by a specific type of diagram.

  • Context Diagram Provides a high-level view of the system, showing external dependencies and primary system boundaries.

  • Container Diagram Delves into the internals of the system, illustrating major containers or components and their interactions.

  • Component Diagram Details the internal structure of each container, showcasing individual components, classes, or modules and their relationships.

  • Code Diagram Optionally, drills down into the inner workings of individual components or classes at the code level.

Introduction to Anansi

Anansi is a visual data lineage tool designed to make cataloging, tracking, and visualizing connections between systems and their associated data and processes seamless. Its has a user-friendly interface and is highly configurable and type-safe.

What sets Anansi apart is its ability to accommodate an unlimited number of levels, allowing for a more granular and detailed representation of software architecture.

Real world Use Case

A large Bank has 4 Departments:

  1. Custody
  2. Retail
  3. Investment
  4. Treasury

Inside each departments are:

  • Services
    • Each Service utilizes many Code (Classes, Objects, functions, etc.) components.
  • Databases
    • Each Database has multiple Database Tables.
    • Each Database Table has multiple columns.

Here is a sample diagram which encapsulates whatever we shared above.

Bank Heirarchy

Implementing the Bank Heirarchy using C4 Notations

Anansi simplifies the creation of high-level context diagrams. Users can easily document external dependencies, users, and primary system boundaries, providing a bird's-eye view of system interactions. Major components and their interactions are visually represented, offering insights into the internal workings of the system.

Context - Level 1 (Bank)

At the Top Level, there is only 1 node for the purpose of this example.

level1

Container - Level 2 (4 Departments)

  1. Custody
  2. Retail
  3. Investment
  4. Treasury

level2

Component Diagrams for Internal Structures - Level 3

Inside the Treasury Container, there are:

  • 3 Systems or Processes.
    • CRM System
    • FRM System
    • Investment Order System
  • 1 SQL Server Instance (Demo Test).

level3

Code Diagrams - Level 4

Anansi supports code diagrams for those needing more detail. These diagrams, while not always necessary, offer a detailed view of key classes or methods within a component.

level4

Database Tables - Level 4

Anansi supports detailed database table diagrams, showcasing tables, their fields, data types, and relationships. These diagrams provide a clear visualization of the data structure and how different tables are interconnected within the system.

level4_1

Visualizing Data Lineage with Anansi

Graphical Data Lineage

Anansi's visual data lineage feature complements the graph visualization by providing a graph-based representation of data flow. Easily find and understand the data lineage you are looking for.

For example, the below diagram shows the data lineage of the CRM Service Update Component.

data_lineage

Benefits of using Anansi with the C4 Model Notation

  • Unlimited Levels (Anansi): Anansi's unique capability to support an unlimited number of levels allows for a detailed representation of your software architecture.
  • Visual Data Lineage (Anansi): Find the Lineage of a System/Process/Metadata as a Graph.
  • Clarity (C4 + Anansi): Communicate complex architectural concepts in a clear and concise manner.
  • Consistency (C4): Establish a standardized approach for architecture documentation.
  • Collaboration (Anansi + C4): Facilitate collaboration among development teams and stakeholders.

Conclusion

In a world where data flows through every corner of the business landscape, the combination of using the C4 model notation and Anansi's capabilities emerges as a powerful solution. The structured approach of the C4 model, combined with Anansi's user-friendly interface, unlimited level support, streamlines the process of documenting and communicating software architecture.

Ready to get started with visualizing your software architecture using Anansi?
Contact us to know more!