/seckill

A demo project to showcase microservices handling traffic spikes using event sourcing and CQRS

Primary LanguageJavaApache License 2.0Apache-2.0

ServiceComb Demo - SecKill Build StatusCoverage StatusLicense

Purpose

In order for users to better understand how to develop micro-services using ServiceComb, and learning event sourcing.

Architecture of SecKill

  • Admin Micro-Service (Promotion Management)
  • Command Micro-Service (Active Promotion and Accept Customer Grab Coupon then publish event to Message broker)
    More detail see : Command Micro-Service Architecture
  • Event Micro-Service (Consume Event Message from Message broker)
  • Query Micro-Service (Customer can query current active promotion and acquired coupons)

Alt text

Prerequisites

You will need:

  1. Oracle JDK 1.8+
  2. Maven 3.x
  3. MySQL CE 5.x
  4. Docker
  5. Docker machine(optional)
  6. curl or Postman

Run Services

You can run services follow this steps:

First Build all service images using command mvn package -Pdocker

If run jar mode locally you can change application.properties and then java -jar target/seckill/seckill-xxx-service-xxx-exec.jar

Also you can run all service images using command docker-compose up

If you are using Docker Toolbox, please add an extra profile -Pdocker-machine.

mvn package -Pdocker -Pdocker-machine

Run Integration Tests

mvn verify -Pdocker -Pdocker-machine

Verify services

You can verify the services using Postman by the following steps:

  1. Create promotion Alt text
  2. Query active promotions Alt text
  3. Request grab coupon Alt text
  4. Query acquired coupons Alt text