@eq8/mvp

Microservice Viable Platform

A scalable and extensible platform for multi-tenant web based enterprise applications

Problems

  • Speed
  • Maintainability
  • Scalability

Speed

Maintainability

Scalability

Goal

Faster and more releases by providing a shared platform that:
  • Reduces the scope of releases
  • Allows continuous deployment of releases
  • Scale as needed

Strategy

Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.

Decompose and inline with the organization

Decompose and inline with the domain

Strategy (cont'd)

How will we interact with the system?

CQRS

Event Sourcing

Strategy (cont'd)

How to decouple the implementation?

Out-of-Process

  • Service Locator
  • Message-based
  • Microservices
Placeholder

In-Process

  • Dependency Injection
  • Plugins
placeholder

Strategy (cont'd)

How does the infrastructure look?

Architecture

  • Clusters
  • Services
  • Microservices

Clusters

  • Docker
  • Serverless
  • Stores

Services

  • Shared Services
  • Backing Services
  • Replicated Services

Microservices

  • Serverless
  • Monorepo

Summary

How does it make it faster to release?

Automates all things

  • Partitioning: work, code, releases
  • Versioning: API, configuration, data
  • Deployment: continuous integration/deployment
  • Scaling: provisioning, replicas
  • Documentation: API / Release

Caveats

  • Risks: WIP / Training
  • Performance
  • Operational Complexity

Next Steps