From 9a8c92cfda14c7706d72574a1fd780df0fed9359 Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 19 Apr 2018 20:07:07 +1000 Subject: [PATCH] Update README.md --- README.md | 47 +++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index b6bbead..243e289 100644 --- a/README.md +++ b/README.md @@ -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`... ``` @@ -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 @@ -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/... @@ -67,10 +60,7 @@ Then install the dependencies: $ dep ensure ``` - - -TRY IT! -------- +## Try it! - Run the articles API @@ -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) @@ -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 -``` \ No newline at end of file +```