We are providing the user with some functionality that are made of a collections of modules. Each module is deployed in its own POD (container). The modules are:
- User Interface (React + NodeJS BFE) module
- Backend service (REST API) module
- Connectors (Tree modules that connect with other external system pulling and pushing events)
- Database (MongoDB) and queue management software (Kafka / ActiveMQ)
This set should be:
- Be configured as only one Application with multiple Clusters?
- Be configured as multiple Applications withing one Project?
Thanks for your comments.
Definitely option 2.
I would consider the front end and backed as different applications. They might have different teams to notify on failures and different deployment windows. Same with your db layer.
Clusters are a good way to manage the different deployment types for any application. Such as a snapshot or dev cluster for developers, stable or staging cluster for qa, and then a prod cluster.
But you also want to have visibility to all of these in one place and that would be the exactly what "Projects" are for. A collection of applications and their collections of clusters.