Microservices Made Easy

Synopsis
Let’s start with a quick definition:
Microservices – also known as the microservice architecture – is an architectural style that structures an application as a collection of services that are
- Highly maintainable and testable
- Loosely coupled
- Easily wired together
- Independently deployable
- Organized around business capabilities
- Owned by a small team
Think Modular When Designing
The difference between a monolithic vs microservice approach starts with the design. Uber models lead to monolithic apps while modular models lead to a microservices outcome. With Harbormaster, it’s actually very simple. Harbormaster is model driven. If you want a set of microservices, define a set of service based models. Rather than a single model for the entire system, take a modular approach and define smaller models that represent subsystems. Importantly, Harbormaster gives you the freedom to match the right tech stack and model source for a given service.Unlimited Design Options
To illustrate this, let’s define a system made up of a handful of services:Service | Input Source | Rationale | Outcome |
---|---|---|---|
Order | A new model for a new service | Decide it is best to create a customer order entry system using an offshore team proficient in Go | Go/Postgres tech stack based microservice |
Sales | A new model to extend an existing service | Current sales system has an API but lacks required features | Angular/MongoDB tech stack based microservice |
Accounting | A new model as an API layer to an existing system | An existing COTs accounting system does not have required functionality | AWS Lambda Serverless tech stack based microservice |
Support | Refactor a model from an existing custom system written in the 90s using Java/J2EE |
|
Spring/MySQL tech stack based microservice |
Shipping | An existing model to a legacy system | The existing system is not ready to be completely rewritten, but leveraging its model allows reuse on a new tech stack | Apollo GraphQL |

Being able to make these types of decisions is what Harbormaster was built for. The outcome is:
- Five distinct loosely coupled microservices.
- Each microservice uses the best tech stack possible.
- Team and environment strengths are accounted for.
- Each model is smaller and more manageable than a single large model.
- Can add a system refactoring event into the scenario.
- Easy to mix-n-match languages, databases, and architecture styles.
- Ready to be communicated with over HTTP via well defined APIs.