DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • The Case for Software Architecture Makeover
  • From Architecture to an AWS Serverless POC: Architect's Journey
  • Future Retail: A Business and Technical Architecture
  • How to Build Scalable Mobile Apps With React Native: A Step-by-Step Guide

Trending

  • Scalable, Resilient Data Orchestration: The Power of Intelligent Systems
  • Medallion Architecture: Efficient Batch and Stream Processing Data Pipelines With Azure Databricks and Delta Lake
  • Understanding IEEE 802.11(Wi-Fi) Encryption and Authentication: Write Your Own Custom Packet Sniffer
  • Mastering Fluent Bit: Installing and Configuring Fluent Bit on Kubernetes (Part 3)
  1. DZone
  2. Software Design and Architecture
  3. Microservices
  4. Solution vs Software Architecture

Solution vs Software Architecture

This post dives into distinct architecture domains, like DevOps and data architecture, how they interconnect, and their importance in overall solution architecture.

By 
David Shilman user avatar
David Shilman
DZone Core CORE ·
Updated Oct. 11, 21 · Opinion
Likes (179)
Comment
Save
Tweet
Share
139.3K Views

Join the DZone community and get the full member experience.

Join For Free

In my tenure as a solution architect in financial services working for a global consulting firm, I have often questioned the best way to practice enterprise architecture.  A common challenge that many architecture consultants face is that most client firms insist on using their proprietary enterprise architecture content. I have observed that frequently such architecture content does not always distinguish between the solution and software architecture.

This article is not an academic paper. In this article, I  present my experiences and ideas to help my colleagues better understand the vague differences between two similar but distinct architecture disciplines. At the very least, this article may trigger a conversation via the comments section that may persuade me that I am wrong.


“If I Had More Time, I Would Have Written a Shorter Letter” - Blaise Pascal.


Solution Architecture

The term "Solution Architecture" is commonly used to describe the process of developing, documenting architecture content for a specific architecture stakeholder audience intended to enable a particular business or organizational outcome.

The solution architecture will address the needs and concerns of individual business and organizational stakeholders producing corresponding functional and non-functional requirements captured in the solution architecture document. The solution architecture document describes the target architecture within the context of relevant architecture domains such as business, data, application, technology, integration, security, etc. The solution architecture document elaborates and decomposes the target architecture into concrete architecture deliverables, also called building blocks for each architecture domain. In this article, I will use an example of a fictitious online bank loan application to segregate such concerns by each architecture domain:

Image title


  • Business Architecture: describes the sequence of events and actions for each user persona to complete the online loan application 
  • Data Architecture: defines the information scope needed to complete the loan application such as information format, source, and quality. Data architecture also addresses the concerns for private data security and integrity while ensuring performance, availability, and consistency
  • Application Architecture: Decomposes the application into granular single responsibility UX, functional, data components that the loan account opening web or mobile apps consist of
  • Integration Architecture: Identifies external data and functional resources, and defines the methods to interact with these resources
  • Security Architecture: Deals with Customer Identity and Access Management (CIAM) concerns such as user registration, authentication, and password recovery
  • Technology Architecture: Addresses the infrastructure needs for high availability and performance for:
    • compute (virtualization, containerization, serverless)
    • network (firewalls, subnets)
    • storage (object, block, file share)
  • DevOps Architecture: Focuses on enhancing change management operations via CI/CD pipeline and application observability (logs monitoring, incident management)

The solution architecture document captures the above concerns and decisions and is presented to the project and architecture review boards to ensure that it satisfies organizational standards and the project time and cost constraints.    

Software Architecture

Once the solution architecture is defined, reviewed, and approved, the project can now transition to the build phase referred to as the SDLC phase. A software architect will now work to develop the software architecture as part of the Design Runway. The primary focus of software architecture is to define and document software structure and behavior based on known functional and non-functional requirements and enable software engineers to produce functional software. The objective here is quite different from the goal of solution architecture, which is to define the application, data, infra architecture building blocks, and dependencies. A software architect will apply software architecture styles and design patterns to outline the client and server-side software components that implement user experience (UX), functional, and data application building blocks defined in the solution architecture document. As I mentioned, the main objective of software architecture is to enable software engineering delivery. The software engineering diagrams I find most useful are the domain object model class, service component, sequence, and deployment diagrams.

Image title


  • A Domain Object Model Class Diagram is essential in defining the domain-driven design that ensures consistent data structure across UX, API, and backend data tiers.
  • A Services Component Diagram breaks down the application into bounded context REST APIs that can be implemented as self-contained microservices
  • A Sequence Diagram demonstrates how each user function is implemented by an orchestrated process made up of multiple service interactions 
  • A Deployment Diagram is necessary to demonstrate the platform each software component is deployed on such as VMs, Kubernetes pods, or serverless lambda, and how high availability is configured across multi-availability zones.

I hope I have demonstrated how solution and software architecture are two distinct disciplines with different purposes and audiences. Can a solution architect be a software architect and vice versa? In my opinion, yes, as long as s/he knows when each discipline is appropriate.

I welcome your thoughts and feedback.

Disclaimer: The solution and software architecture artifacts used in this article have been exclusively created for this article. They do not represent or reflect any proprietary information I‘ve worked with on any current or prior projects.

References

BIAN Business Scenario Origination - Consumer Loan

AWS Web Application Hosting Architecture

The Top Six Microservices Patterns

Software architecture Data architecture Solution architecture mobile app

Opinions expressed by DZone contributors are their own.

Related

  • The Case for Software Architecture Makeover
  • From Architecture to an AWS Serverless POC: Architect's Journey
  • Future Retail: A Business and Technical Architecture
  • How to Build Scalable Mobile Apps With React Native: A Step-by-Step Guide

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!