Skip to content

Commit

Permalink
Updated READMEs
Browse files Browse the repository at this point in the history
  • Loading branch information
cer committed Jan 11, 2017
1 parent 6c84100 commit edcfd9e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 46 deletions.
23 changes: 6 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,16 @@ The following diagram shows the architecture:

![Money transfer architecture](https://github.com/cer/event-sourcing-examples/wiki/i/applicationarchitecture.png)

There are the following logical services:
There are the following services:

* Customers (command-side) - REST API for creating customers
* Accounts (command-side) - REST API for creating accounts
* Money transfers (command-side) - REST API for transferring money
* Customers (query-side) - subscribes to events and updates a MongoDB View, and provides an API for retrieving customers
* Accounts (query-side) - subscribes to events and updates a MongoDB View, and provides an API for retrieving accounts
* Customers Service - REST API for creating customers
* Accounts Service - REST API for creating accounts
* Transactions Service - REST API for transferring money
* Customers View Service - subscribes to events and updates a MongoDB View, and provides an API for retrieving customers
* Accounts View Service - subscribes to events and updates a MongoDB View, and provides an API for retrieving accounts

There is also an [API gateway](http://microservices.io/patterns/apigateway.html) service that acts as a Facade in front of the services.

One of the neat things about the modular architecture is that there are two ways to deploy these four services:

* monolithic-service - all services are packaged as a single Spring Boot executable JAR
* Microservices - three separate Spring Boot executable JARs
* customer-command-side-service - command-side customers
* accounts-command-side-service - command-side accounts
* transactions-command-side-service - command-side money transfers
* customers-query-side-service - query-side customers
* accounts-query-side-service - query-side accounts
* api-gateway-service - API gateway service

# About the examples

There are currently the following versions of the example application:
Expand Down
34 changes: 5 additions & 29 deletions java-spring/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,10 @@ This is the Java/Spring version of the Event Sourcing/CQRS money transfer exampl

# About the application

This application consists of three microservices:
This application consists of the following microservices:

* Account Service - the command side business logic for Accounts
* Money Transfer Service - the command side business logic for Money Transfers
* Query service - query side implementation of a MongoDB-based, denormalized view of Accounts and MoneyTransfers

The Account Service consists of the following modules:

* accounts-command-side-backend - the Account aggregate
* accounts-command-side-web - a REST API for creating and retrieving Accounts
* accounts-command-side-service - a standalone microservice

The Money Transfer Service consists of the following modules:

* transactions-command-side-backend - the MoneyTransfer aggregate
* transactions-command-side-web - a REST API for creating and retrieving Money Transfers
* transactions-command-side-service - a standalone microservice

The Query Service consists the following modules:

* accounts-query-side-backend - MongoDB-based, denormalized view of Accounts and MoneyTransfers
* accounts-query-side-web - a REST API for querying the denormalized view
* accounts-query-side-service - a standalone microservice

# Deploying the application

These services can be deployed either as either separate standalone services using the Event Store server, or they can be deployed as a monolithic application for simplified integration testing.

The three services can also be packaged as a single monolithic web application in order to be used with the embedded Event Store:

* monolithic-service - all-in-one, monolithic packaging of the application
* Account View Service - query side implementation of a MongoDB-based, denormalized view of Accounts
* Customer Service - the command side business logic for Customers
* Customer View Service - query side implementation of a MongoDB-based, denormalized view of Customers
* Transaction Service - the command side business logic for Money Transfers

0 comments on commit edcfd9e

Please sign in to comment.