Team is a BPMS open source Project (Business Process Management Systems) like Asana with features such as communication system and project management.
- Golang
- Kubernetes
- Docker
- GRPC
- REST
- Neo4j
- Postgresql
- Rabbitmq
Team developed by Hexagonal Architecture and Clean Architecture mindset especially Dependency Injection and S.O.L.I.D
each project have two main part core and adapter.
core is the main part of our app and contains business rules , port, domain and dto. and port (dependencies model) at the
usecase is a business rules but this component need other part for working well like dao we model other part in port and inject implementation of port on usecase you can find at the app/internal/core/usecase
port is a model of our dependency you can find port on app/internal/core/port
dto or data transfer object is a standard for send and recive data from usecase
each adapter is implementation of one port that injected in usecase we impliment somthing like query in this part.
you can find database migration on app/assets
- Read configs from env vars
- In the second step we prepering our driven port like database. at the end of this step we have a implementation of driven port
- when we need local data in this step we have a database instance.
- when we need a data from other microservices we have sync or async commenication object like grpc or rabbitmq
- In the third step we call the usecase and pass objects of step 2 for use as dao in usecase
- In the last Pass usecase in the driver port implementation.
Each microservice have app service , app deployment , configmap , secret , database deployment and databse service
Each microservice app have one docker file for development and on docker file for production(under dev) and have one docker compose with dev docker file and database image for development
| Microservice | Status |
|---|---|
| Customer | Test and Develop |
| Board | Test and Develop |
| Workspace | Test and Develop |
| Admin | Test and Develop |
| Notification | Not Start |
| Chat | Not Start |
- Make reliable communication between with saga pattern and circuit breaker pattern
- Creating communication between Admin and workspace , customer , board microservices.
- Develop and debug workspace microservice.
- Develop Notification Microservice.
- Creating Async communication with Rabbitmq between notification and other microservices
- Create BFF microservice for web
- Develop unit tests
- Develop chat microservice
| Microservice | Database |
|---|---|
| Customer | postgresql |
| Board | postgresql |
| Workspace | neo4j |
| Admin | postgresql |

