Skip to content

This project aims to propose a Microservice Architecture Solution Framework for standardizing deliverables in Microservices Architecture projects.

Notifications You must be signed in to change notification settings

rpicanco/MicroserviceArchitectureSolutionFramework

Repository files navigation

Microservice Architecture Solution Framework


Table of Contents
  1. About the Project
  2. What is the purpose of this framework?
  3. Boundaries' deliverables

About the Project

The aim of this project is to propose a Microservice Architecture Solution Framework for standardizing deliverables in Microservices Architecture projects. It was designed with boundaries and deliverables. Each boundary has many deliverables and they can be done in any order and/or in parallel and being enriched throughout the project lifecycle.

What is the purpose of this framework?

You have been invited to a new initiative in your consulting firm for leading the first Microservice Architecture (MSA) project to an important client. So, where to start?

When adopting a MSA, there are some important benefits for your business that we must consider:

  • Agility;
  • Resilient / Fault isolation;
  • Scalability;
  • High availability;
  • Mix of technologies;
  • Easy and fast deployment of new functionalities/ideias in production (fast Time to Market).

After acquiring the aforementioned benefits, we're justifying the use of this complex architecture in comparison to a monolithic architecture.

The main problem when companies are running a MSA is not to achieve those benefits, either because it doesn't follow some best practices or there is no guideline to help them. That means you're running a complex architecture without achieving their benefits that justify its adoption.

What to deliver beyond code to achieve those benefits and, in consequence, to become a competitive company in the market?

Many clients believe the MSA project has only the "coding phase", if in the beginning of the MSA project the developers are coding, which means the MSA project is going well.

Unfortunately, this kind of mindset is very common, either because of being pressured on scope or; deadlines or even budget. Consequently the neglected part has been a deep understanding of the client’s problem by getting to know the client’s business domain, as well as being aware of the functional and nonfunctional requirements and test scenarios using some methodology like Behaviour Driven Development (BDD).

If the understanding of the client’s problem and test scenarios are not clearly understood and aligned with stakeholders since the early stages of the MSA project, it will be doomed.

The main purpose of the framework is to standardize the MSA project through well-defined and straightforward deliverables, being a reference guide that helps the companies to achieve those benefits.

To conclude, as each MSA project has its own needs and has its own peculiarities, not all deliverables are applied to all types of MSA project, such as: re-architecting; greenfield; redesign a poorly designed MSA project, as well as a Minimum Viable Product (MVP) project.

Business Domain Boudary

Deliverables
  1. Domain Discovery
  2. Functional Requirements
  3. Bounded Contexts Context Mapping
  4. System Context Diagram
  5. Microservice Catalog

Solution Architecture Boudary

Deliverables
  1. Architecture Solution Design
  2. Microservice Patterns
  3. Architecture Decision Records
  4. Architectural Caracteristics
  5. Event Specification (AsyncAPI)
  6. Constraints Records
  7. API Management
  8. UML Behavioral Diagrams
  9. Container Diagram

Software Architecture Boudary

Deliverables
  1. Architecture Software Design
  2. Microservice Archetype
  3. UML Structure Diagrams
  4. Coding Standards and Guidelines
  5. Branching Workflow

Development Boudary

Deliverables
  1. Microservice API Design (OpenAPI)
  2. Microservice Specification
  3. Features & Scenarios - Behaviour Driven
  4. Test Automation
  5. Source Code

Delivery Boudary

Deliverables
  1. Deployment Diagram
  2. Infrastructure As Code (IaC)
  3. Deployment Pipeline Flow (CI/CD)
  4. Monitoring
  5. Chaos Engineering