• Stars
    star
    142
  • Rank 257,642 (Top 6 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The source code of the book "Microservices Patterns (Chris Richardson)" and the personal study note of Eventuate Tram Framework (The whole solution of transactional messaging for Spring Boot microservices).

microservices-patterns

Build Status License

This repository contains the source code of the book "Microservices Patterns (Chris Richardson)" and the personal study note of Eventuate Tram Framework (The whole solution of transactional messaging for Spring Boot microservices).

Overview

This source code was re-organized by the original source code of the book and I make sure each module is runnable.

Application Context

This is an application called FTGO (Food to Go). Consumers use the FTGO website or mobile application to place food orders at local restaurants. FTGO coordinates a network of couriers who deliver the orders. It's also responsible for pay couriers and restuarants. Restuarants use the FTGO website to edit their menus and manage orders. The application use s various web services, including Stripe for payments, Twilio for messaging, and Amazon Simple Email Service (SES) for email.

Structure

Technology Stack

Differences to The Original Source Code

  • Removed all the proxy classes in the Order Service so that the code organization of 3 sages (the create order sage, the cancel order sage and the revise order sage) is consistent.
  • Regenerated the stub for the gRPC server in the Order Service (The gRPC code is incompleted in the original source code and was causing issues when starting the Order Service).
  • Finished the routing functionality for the Accounting Service, the Consumer Service, the Delivery Service and the Kitchen Service in the API gateway (Only the routing logic of the Order Service was finished in the original source code).
  • Changed the port number of all the services and the API gateway.
  • Replaced hardcoded channel names in multiple places. Centralized those channel names in one place.
  • Fixed some bugs.
  • Added more logging.
  • Enhanced API documentation (Swagger UI).

Study Notes

Documentation

More Repositories

1

system-design-interview

The study note for system design problems in interviews.
90
star
2

spring-microservices-in-action

The source code of the book "Spring Microservices in Action (John Carnell)" and the personal summary of technical essentials about Spring Boot for microservices.
Java
86
star
3

system-design-knowledge

Accumulate system design knowledge (concepts, patterns, technology choices, etc.) from different resources (books, essays, web, etc.).
33
star
4

grpc-up-and-running

The study note of the book "gRPC: Up and Running (Kasun Indrasiri)" and the reconstruction of source code.
Go
22
star
5

kafka-definitive-guide

The sample code the book "Kafka: The Definitive Guide (Gwen Shapira, Neha Narkhede, and Todd Palino)" and the personal study note of Apache Kafka.
Java
17
star
6

go-music

The source code of GoMusic web application which is the example in the book "Hands-On Full Stack Development with Go"
Go
8
star
7

software-engineering-abbreviations-acronyms

Abbreviations and acronyms in software engineering, DevOps, IT and business
7
star
8

java-concurrency-in-practice

The source code of the book "Java Concurrency in Practice (Brian Goetz)".
Java
4
star
9

locking-redis

Use Redis (in-memory key–value database) to implement different locking algorithms for distributed concurrency control.
Java
3
star
10

boost

A series of data structures to simulate the functional programming in Java (like Apache Spark JavaRRD).
Java
2
star
11

jibernate

The JPA (Java Persistence API) module based on the Hibernate ORM framework with the enhanced and simplified query and expression modules.
Java
2
star
12

wuyichen24

The readme page for my public profile.
2
star
13

CloudCapstone

The final project for the Cloud Computing Specialization in Coursera: Analysis of Airline On-Time Performance Data in Hadoop and Spark.
Java
2
star
14

jpropertiesorm

Use annotation and reflection to handle the ORM (Object-Relational Mapping) between Java class and the Java related external configuration files (.properties).
Java
2
star
15

datarecord

The transaction-style database connector for providing convenient/high-consistency database operations.
Java
2
star
16

jcsvorm

Use annotation and reflection to handle the ORM (Object-Relational Mapping) between Java classes and CSV (Comma-Separated Values) files.
Java
2
star