zevolution / netflix-hexagonal-architecture

This project was created as a simple example to show how we can implement the hexagonal architecture(software design) proposed by Netflix.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FlixHexaArch-Logo

Netflix Hexagonal Architecture

Table of contents

About the project

This project was created as a simple example to show how we can implement the hexagonal architecture(software design) proposed by Netflix in this article.

Description

This project has business logic to get the software by author and software name inside a company, for this, it searches in the company's main git provider, which is Github. At some point, the company decides to change its git provider from Github to Gitlab; thus, changing the application's data source.

To change datasource from Github to Gitlab switch @Primmary annotation between them and restart application

Built with

Installation

To clone and run this application, you'll need Git installed on your computer(or no, if you want to download .zip). From your command line:

# Git CLI
git clone https://github.com/zevolution/netflix-hexagonal-architecture.git

# Github CLI
gh repo clone zevolution/netflix-hexagonal-architecture

Requirements to run

  • If you use Windows OS, is strongly recommended that you use Git Bash to perform all operations.
  • Docker Engine
  • Docker Compose
  • OpenJDK 11 (if you don't use docker)

Usage information

  1. After open project in your IDE, run mvn clean generate-resources to generate stub OpenAPI structure with OpenAPI Generator in target folder.
  2. Default api-port is 8180
  3. Default debug-port is 5105
  4. Default actuator-port is 9190
  5. Default context-path /service--softwares-info
  6. Swagger URI /service--softwares-info/swagger-ui/
  7. Actuator URI /actuator

Run

You can execute startup.sh, before grant execution permissions with chmod +x startup.sh. If you can't run startup.sh, follow these steps:

  1. Open your terminal in the project folder
  2. Run docker-compose up

License

MIT

About

This project was created as a simple example to show how we can implement the hexagonal architecture(software design) proposed by Netflix.

License:MIT License


Languages

Language:Java 98.4%Language:Shell 1.1%Language:Dockerfile 0.6%