This example describes application boundary and deployment model evolution as part of company growth. It doesn’t go into details of stories, requirements, architecture, architectural decision records and code structure.
Company wanted to build a DocuStar product that allows customers to store, view, edit, and share documents. Engineering team decided to create a DocuStar application that includes Toolchain and Service components. Toolchain includes Deployment Pipeline and Pull Request Build components. Service includes Documents Console, Documents Store, User Management, and Credentials Broker components.
Engineering decided to create a single source code repository for the DocuStar application. Application (metadata) and Toolchain resources deploy as a stack each. Service resources deploy as multiple stacks: 1/ Documents (Documents Console and Documents Store) 2/ User Management 3/ Credentials Broker.
As DocuStar grew in functionality, the company increased the team working on the product. To maintain fast flow, the company decided to split DocuStar into multiple products and applications, with each application having a dedicated team:
Engineering decided to create a source code repository for each application. Now, Application (metadata), Toolchain, and Service resources deploy as a stack each.