Giter Site home page Giter Site logo

microservicescourse's Introduction

Spring Boot Microservices with CQRS & Event Sourcing

O objetivo deste projeto é construir uma aplicação utilizando micro-serviços atendendo os princípios de design em termos de melhores práticas, incluindo CQRS, Event Sourcing e DDD.

Os tópicos abordados nesse projeto são:

  • CQRS (Separação de operações de comando e consulta).
  • Event Sourcing (Garantir que todos os eventos gerados na aplicação sejam armazenados em uma sequência para posterior consulta).
  • DDD (Codificação centralizada nas entidades de domínio (Usuários e Contas bancárias)
  • Padrão arquitetural REST
  • Deploy utilizando docker containers
  • Servidor de autorização utilizando OAuth 2.0
  • Utilização de API Gateway para service discovery.

Tecnologias utilizadas:

  • SpringBoot 2.4.5
  • Java 11 (OpenJDK)
  • Spring Cloud Starter Gateway
  • Maven
  • Intellij Idea
  • Axon Framework
  • MongoDB
  • MySQL Server
  • Adminer
  • Docker (Para rodas as aplicações como bancos e Axon server).

Arquitetura do projeto:

image

User-Domain

image

Bank-Account Domain

Component+Diagram+-+Bank+Account+Microservices

Para executar o projeto primeiro execute o comando:

mvn clean install

Nos projetos:

  • api-gateway
  • bank-account
  • user-management

Após isso faça a construção de cada uma das imagens para os respectivos projetos:

 - bankacc.cmd.api -> docker build -t bankacc-cmd-api .
 - bankacc.query.api -> docker build -t bankacc-query-api .
 - user.cmd.api -> docker build -t user-cmd-api .
 - user.query.api -> docker build -t user-query-api .
 - user.oauth2.0 -> docker build -t oauth2-service .
 - api-gateway -> docker build -t api-gateway .

Após gerado as imagens basta executar o comando:

docker-compose up -d dentro do diretório docker/springbank

microservicescourse's People

Contributors

allanalves92 avatar

Watchers

 avatar  avatar

Forkers

donniezhanggit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.