Skip to content
Abhishek Dubey edited this page Jul 20, 2020 · 2 revisions

OT-Microservices

Loaded microservice applications for doing different kinds of POC. This is a sample Employee System which is designed to understand the microservices nature and behavior.

Purpose

The purpose of creating this application is to provide an individual, a holistic idea of microservice architecture, it's working, and its setup.

Preliminary

  • Please work in a group
    • If we are remote, we have break out rooms!
    • We will be running a lot of instances
    • Dev-ops is maddening
  • We will let a fun service decide your teamname: http://creativityforyou.com/combomaker.html
  • Select a leader of your group, they will need a public Github account and generate a token
  • The leader should provide a token to the administrator, via virtual chat, slack, or email

Applications

These are a few microservices that are getting used in this complete project.

Application Name Default Port Dependency Language Description
attendance 8081 MySQL Attendance is a microservice which is designed in Golang to manage employee's attendance information.
employee 8083 Elasticsearch Employee microservice is also designed in Golang to manage employee's information.
salary 8082 Elasticsearch Salary is also a golang based application which creates and manages employee's salary information.
notification - SMTP Server Notification is a scheduled service which gets used to send mail notifications to employees.
frontend 5000 Gateway Frontend is written in ReactJS and gets served using nginx proxy, config can be found here
gateway 8080
  • attendance
  • employee
  • salary
  • notification
Gateway is a springboot based API gateway which manages the routing between applications.
webserver 80 frontend Webserver is a nginx based proxy which proxies the frontend application.

For further information about the component, you can click on the application.

Databases

These applications are using two kinds of databases, one is structured and the other is non-structured.

Application Name Default Port Dependency Description
elastic 9092 - Elasticsearch is being used as a non-structured database which manages the employee's information and salary.
mysql 3306 - MySQL is getting used for a structured database which manages the employee's attendance information.

For further information, click on the DB.

Architecture

The architecture of the complete microservice interaction looks like this:-

Screenshot

Clone this wiki locally