Skip to content

Commit

Permalink
Merge pull request #1 from d3v1an7/patch-1
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
pavelnikolov authored Apr 19, 2018
2 parents d20cf6c + 9a8c92c commit e82bd5e
Showing 1 changed file with 19 additions and 28 deletions.
47 changes: 19 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
Event Sourcing + CQRS using Go Workshop
======================

BACKGROUND
-------------
Imagine that you are working for a large news publisher called **FairFlax Media**, not to be mistaken with Fairfax Media, inspired by [flax flower](https://www.google.com.au/search?q=flax+flower&tbm=isch) : )
# Event Sourcing + CQRS using Go Workshop

## Background

!["Fairflax Media logo"](https://github.com/pavelnikolov/eventsourcing-go/blob/master/static/fairflax-media-logo-small.png?raw=true "Fairflax Media logo")

Imagine that you are working for a large news publisher called **Fairflax Media**, inspired by [flax flower](https://www.google.com.au/search?q=flax+flower&tbm=isch) (not to be mistaken with Fairfax Media, of course).

You are breaking our huge monolith system into micro services and moving everything to Kuberentes...
You like domain driven desing and we do not allow more than one app to connect to a database. Each DB can be owned by only one application. As time goes by, you notice that many services need common data. You need to make sure that the data is consistent across all services and the query performance is reasonable.

This is when things get interesting...
You have been tasked with breaking the huge monolith system into microservices and moving everything to Kuberentes.
You prefer domain driven design, and believe that each database should only ever be owned by a single application. But as time goes by, you notice that many services need common data. You need to make sure that the data is consistent across all services and the query performance is reasonable.

PREREQUISITES
-------------
## Prerequisites

- This requires Go 1.6 or later
- Requires that [GOPATH is set](https://golang.org/doc/code.html#GOPATH)
- Install `dep` for managing dependencies - https://github.com/golang/dep#installation
- Go 1.6 or later
- `GOPATH` [is set](https://golang.org/doc/code.html#GOPATH)
- `dep` [for managing dependencies](https://github.com/golang/dep#installation)

On Mac OSX using `brew`...
```
Expand All @@ -38,8 +32,7 @@ PREREQUISITES
```


QUICK INSTALL (I haven't tried it)
-------
## Quick install (Untested)

```
$ go get -u github.com/pavelnikolov/eventsourcing-go/demo-articles
Expand All @@ -48,8 +41,8 @@ $ go get -u github.com/pavelnikolov/eventsourcing-go/demo-sitemap
$ go get -u github.com/pavelnikolov/eventsourcing-go/demo-rss
```

CLONE THE REPOSITORUY
-------
## Clone the repository

Either (I haven't tried it):
```
$ go get github.com/pavelnikolov/eventsourcing-go/...
Expand All @@ -67,10 +60,7 @@ Then install the dependencies:
$ dep ensure
```



TRY IT!
-------
## Try it!

- Run the articles API

Expand Down Expand Up @@ -104,8 +94,9 @@ Navigate to the apps in your browser:
- (Naive and useless) Sitemap - http://localhost:4003/sitemap


OPTIONAL - Rebuilding the generated code
----------------------------------------
## Optional tasks

### Rebuild the generated code

1. Install [protobuf compiler](https://github.com/google/protobuf/blob/master/README.md#protocol-compiler-installation)

Expand All @@ -127,11 +118,11 @@ OPTIONAL - Rebuilding the generated code
$ protoc -I publishing/ publishing/publishing.proto --go_out=plugins=grpc:publishing
```

OPTIONAL - Rebuild and run the apps
----------------------------------------
### Rebuild and run the apps

```
go install ./cmd/demo-articles && demo-articles
go install ./cmd/demo-graph && demo-graph
go install ./cmd/demo-rss && demo-rss
go install ./cmd/demo-sitemap && demo-sitemap
```
```

0 comments on commit e82bd5e

Please sign in to comment.