/landy

Projeto de exemplo para demonstrar como construir uma solução baseada em microsserviços utilizando as melhores práticas de arquitetura de serviços distribuídos.

Primary LanguageC#

author GPLv3 license contributions welcome

Comece a hospedar e conecte-se a viajantes do mundo todo.


O objetivo do projeto é demonstrar como construir uma solução baseada em microsserviços utilizando as melhores práticas de arquitetura de serviços distribuídos.

Contexto

Landy conecta anfitriões a viajantes pelo mundo todo. O projeto é baseado em microsserviços e possui as seguintes funções:

  • Gestão de Usuários
  • Gestão de Ofertas de Hospedagem
  • Criação de Reservas
  • Envio de Notificação

Tecnologias

  • NET 5.0
  • SQL Server Express
  • Entity Framework Core
  • ASP.NET Core Web API
  • ASP.NET Core gRPC Service
  • AutoMapper
  • FluentValidation
  • MediatR
  • Redis
  • Kafka
  • Kafkadrop
  • ElasticSearch
  • Kibana
  • Jaeger
  • Ocelot
  • Docker

Para inciar containers

docker-compose up

Gateway

Serviço Url
Gateway.WebApi http://localhost:5000

Microsserviços

Serviço Url
Gestão de Usuários (Identiy.Api) http://localhost:4000
Booking (Booking.Api) http://localhost:4001
Ofertas (Offer.Api) http://localhost:4002
Notificação (Notification.Grpc) http://localhost:14000

Ferramentas:

Serviço Url
Kafkadrop http://localhost:19000
Kibana http://localhost:5601
Jaeger UI http://localhost:16686

Instalando EF tools

dotnet tool install --global dotnet-ef

Aplicando migrations

cd src/Services.Identity/Landy.Services.Identity.Core
dotnet ef database update --startup-project ../Landy.Services.Identity.Api --context IdentityDbContext

Visão geral dos Recursos

Offers

Verb Route
POST /offers
GET /offers
GET /offers/:id

Booking

Verb Route
POST /book
GET /book/:id

Identity

Verb Route
POST /users
GET /users/:id
PUT /users/:id
PUT /users/:id/password
DELETE /users/:id
PUT /users/:id/passwordresetemail
POST /users/:id/emailaddressconfirmation

Arquitetura

✅ CQRS

✅ Mediator

✅ Event Sourcing

✅ Search Indexer

✅ Persistence

✅ Mappers

✅ Validators

✅ Web API

✅ gRPC

✅ OpenTracing

✅ API Gateway

Integrações

  • Pagar.me
  • SendGrid