What is a Modern Software Architecture, Logically Speaking?

You can easily google modern software architecture, and you will get both images and definitions.  They vary widely.  I tried a few weeks ago, and was looking for something I could easily grasp and use as a high-level basis to expand upon as needed.  I was looking for something more succinct, providing a nice high-level logical diagram with enough explanations and simple examples that I could run with it, and expand and elaborate as I wish.

Not finding what I was looking for, I created it myself and have decided to share it here.  It is short and I hope you find it useful.

Modern Software Architecture

Typical modern software architectures include, but are not limited to, the following attributes:

  • They are SOA.
  • They are Distributed and highly-scaleable, upon demand.
  • They offer well-defined API's.
  • They build to change instead of build to last.
  • They provide a well established separation of concerns.
  • They provide data partitioning that fits architectural needs, and not database monolithic, that is, they do not house all data within a single database.  There may be many different data stores, including relational, NoSQL, in-memory, and more.
  • They are loosely-coupled.
  • They integrate with lots of systems, applications, message queues, and message logs.  Many of these are open-source.
  • They perform synchronous as well as asynchronous processing.
  • They are a mash of lots of different technologies.  For example, php, nodejsApache KafkaApache StormApache Sparkhadoopdruid, and many many more...

Depicting a Modern Software Architecture

I now provide diagrams depicting:

  1. logical modern software architecture
  2. service categories

and provide some next steps to provide some tips to help you move forward with your understanding of modern software architecture.

Logical Modern Software Architecture

Figure 1 below depicts a logical modern software architecture.  I like this as a basis as it nicely partitions architecture into its logical core at a high-level, and demonstrates horizontal scaling.

The architecture in Figure 1 is defined as follows:

  • UI
  • API
  • Business Logic
  • Integration
  • Platform Services

As modern software architectures publicize API's, they proxy the services and business logic.  Proper API management can manage user request limits, throttle requests at high-demand times, and provide a clean contract to your service(s).

Integration gets interesting, as it provides the integration points into platform services such as message queueing, database, data analytics, data warehousing, system logging and instrumentation services, and many more.

Logical Modern Software Architecture

Service Categories

The categories in Figure 2 define some general service groupings. Services are commonly hosted where they make sense respective to their functions. Calls need to be made to exposed contracts/interfaces to properly govern them.

Most importantly, it should be understood that services help provide the loose-coupling and are critical in creating a distributed architecture.  With that in mind, services are commonly hosted in many, if not all, of the logical layers defined in Figure 1.

Service Categories

Next Steps

Identify other aspects and important influencers to the overall architecture. This helps to create a more complete architectural picture.  For example, consider the following:

  • UI architecture
  • Security architecture
  •         authentication
  •         authorization
  •         data in transit
  •         data at rest
  • Information (data) architecture
  • Integration architecture
  • Physical architecture
  • Identify NFR's
  • CI Deployments
  • Release management
  • QA (automation testing...)

This was short and to-the-point, and I hope you can use this as the basis to further your understanding of modern software architecture.  Extend and elaborate to your heart's content!

Credit from my Colleague: Brian Buikema, Sr. Software Architect

First job of 2019... clean my at home work desk, reorganize and make it more comfy. Got a back massager for x-mas that I installed on my work chair too!

No Comments Yet.

Leave a comment

You must be Logged in to post a comment.