One Paragraph of project description goes here
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
#/bin/bash | |
clear | |
cd gitProjects/sample-spring-microservices-transactions/ | |
git pull | |
mvn clean install | |
rm *.log | |
# stoping possible running processes... | |
process_id_discovery=`ps -fu $USER | grep "discovery" | grep -v "grep" | awk '{print $2}'` | |
kill -9 $process_id_discovery | |
# Start discovery-server. It is available on port 8761. |
# Add some test data to product-service and account-service. Maybe you have to addapt exact ports and ip. Check Eureka localhost:8761 | |
# Some accounts... http://192.168.1.34:56059/actuator/info | |
curl -X POST http://192.168.1.34:56059/accounts -H "Content-Type: application/json" -d "{\"customerId\":1, \"balance\":0}" | |
curl -X POST http://192.168.1.34:56059/accounts -H "Content-Type: application/json" -d "{\"customerId\":2, \"balance\":10}" | |
curl -X POST http://192.168.1.34:56059/accounts -H "Content-Type: application/json" -d "{\"customerId\":3, \"balance\":100}" | |
# Some products... http://192.168.1.34:56082/actuator/info | |
curl -X POST http://192.168.1.34:56082/products -H "Content-Type: application/json" -d "{\"name\":\"Test\",\"count\":100, \"price\":1000}" |
#/bin/bash | |
clear | |
git pull | |
mvn clean install | |
# Start discovery-server. It is available on port 8761. | |
java -jar discovery-server/target/discovery-server-1.0-SNAPSHOT.jar > discovery-server.log & | |
# Start RabbitMQ on Docker with command | |
docker rm -f rabbit | |
docker run -d --name rabbit -h rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management |
#/bin/bash | |
rm *.log | |
# stoping possible running processes... | |
process_id_discovery=`ps -fu $USER | grep "discovery" | grep -v "grep" | awk '{print $2}'` | |
kill -9 $process_id_discovery | |
# stoping possible running processes... | |
process_id_transaction_server=`ps -fu $USER | grep "transaction-server" | grep -v "grep" | awk '{print $2}'` | |
kill -9 $process_id_transaction_server | |
# stoping possible running processes... | |
process_id_account_service=`ps -fu $USER | grep "account-service" | grep -v "grep" | awk '{print $2}'` |
Driver: | |
-Write the code according to the navigator's specification | |
-Listen intently to the navigators instructions | |
-Ask questions wherever there is a lack of clarity | |
-Offer alternative solutions if you disagree with the navigator | |
-Where there is disagreement, defer to the navigator. If their idea fails, get to failure quickly and move on | |
-Make sure code is clean | |
-Own the computer / keyboard | |
-Ignore larger issues and focus on the task at hand | |
-Trust the navigator - ultimately the navigator has the final say in what is written |
import java.util.List; | |
import java.util.ArrayList; | |
import java.util.Scanner; | |
class EventSource { | |
public interface Observer { | |
void update(String event); | |
} | |
private final List<Observer> observers = new ArrayList<>(); |
package avro | |
import org.apache.avro.file.{DataFileReader, DataFileWriter} | |
import org.apache.avro.generic._ | |
import org.apache.avro.io._ | |
import org.apache.avro.specific.{SpecificDatumReader, SpecificDatumWriter} | |
import org.apache.avro.{Schema, SchemaBuilder} | |
import org.c02e.jpgpj._ | |
import java.io._ |
People
![]() :bowtie: |
π :smile: |
π :laughing: |
---|---|---|
π :blush: |
π :smiley: |
:relaxed: |
π :smirk: |
π :heart_eyes: |
π :kissing_heart: |
π :kissing_closed_eyes: |
π³ :flushed: |
π :relieved: |
π :satisfied: |
π :grin: |
π :wink: |
π :stuck_out_tongue_winking_eye: |
π :stuck_out_tongue_closed_eyes: |
π :grinning: |
π :kissing: |
π :kissing_smiling_eyes: |
π :stuck_out_tongue: |
Once upon a timeβ¦
I once took notes (almost sentence by sentence with not much editing) about the architectural design concepts - Command and Query Responsibility Segregation (CQRS) and Event Sourcing (ES) - from a presentation of Greg Young and published it as a gist (with the times when a given sentence was heard).
I then found other summaries of the talk and the gist has since been growing up. See the revisions to know the changes and where they came from (aka the sources).
It seems inevitable to throw Domain Driven Design (DDD) in to the mix.