osxhacker / demo-microsite

An exploration of microsite/microservice concepts.
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

demo-microsite

An exploration of microsite/microservice concepts.

Overview

The purpose of this project is to explore concepts, tools, and techniques related to implementing and operating both microservices and microsites using Scala and off-the-shelf components, such as:

Concepts explored include, but are not limited to:

Quickstart

Here is how to build and run all services locally. Note that sbt must be installed and available in order to begin.

First, clone this repository locally.

Next, build and run the unit tests from the top-level directory:

sbt recompile-all test

Then follow the instructions detailed in the docker compose deployment documentation.

Roadmap

demo-microsite
├── api
├── deployment
│   └── docker
├── documentation
│   └── adr
├── frontends
│   ├── company
│   └── site
├── gatling
├── scripts
└── services
    ├── chassis
    ├── company
    ├── inventory
    ├── purchase-order
    ├── storage-facility
    └── template.g8
---
title: System Architecture
---
graph TD

gateway[Gateway] <--> site[Web Site]
gateway <--> company-site[Company Site]
gateway <--> storage-facility-site[Storage Facility Site]
gateway --> company-server[Company Server]
gateway --> storage-facility-server[Storage Facility Server]

company-site -- through gateway --> company-server
storage-facility-site -- through gateway --> storage-facility-server

company-server <--> kafka[(Kafka)]
storage-facility-server <--> kafka
storage-facility-server --> postgres[(PostgreSQL)]
company-server -- kafka --> storage-facility-server

api

This is where all RAML public API contracts are defined.

deployment

Here is where deployment artifacts are defined.

documentation

Project documentation source beyond READMEs and Scaladoc can be found here.

This project uses adr-tools to manage the ADR definitions.

frontends

Subprojects which provide UI/UX functionality are located here.

gatling

This subproject defines both end-to-end "feature simulations" as well as "load test simulations." Of note is that, while defined as a sbt aggregate, it does not link to any frontends or services. Only the public api is used.

services

All microservices are located here.

Further Reading