Core Principles - BCGDV/lon-kinbal GitHub Wiki

  1. In it's simplest form, DVLV provides infra to deploy docker containers to AWS
  2. DVLV aims to enable productivity whilst keeping out the way by having a small number of strong opinions.
  3. DVLV is split into a core and add-ons structure to enable composition and remain open for extension.
  4. DVLV should provide the facility to create n identical environments (e.g. staging, production).
  5. DVLV should provide the facility for a complete local developer environment matching deployed environments.
  6. DVLV should not prescribe architectural patterns but provide simple, clear routes to common patterns (monolith, microservices, persistence, events, caching etc.)

Core

The core provides IaC (Terraform) to stand up

  • VPC
  • Kubernetes cluster (EKS)

Add Ons

Microservices - wip

DVLV does not dictate architectural decisions out the box, but aims to provide

"I love where this is heading. My goto is one DB with a separate schema per service. One code base with services separated by namespaces (and some test rules in place to stop cross namespace calls). Fake in-memory async queues and API endpoints between services to mimic distributed comms. I feel it gives a nice balance between speed of development (and the quick refactoring you need in the early days) and service boundaries. " - Robin Weston