We are a team of 3 Software Engineers working together for a big European fashion platform.
We have to make architectural decisions in our daily work and want to be better on this field.
As the new Sysop Squads Software Architects, we have been presented with a system, that is currently live and serving real users. This system has certain properties and certain problems. Our job is to help solve those problems in the best way possible.
To do this we first found what is expected out of the system, who will use it and for what. We created User stories. We also looked at the issues which the team is facing currently (Existing problems). We then identified the architectural requirements for the system (Software system characteristics).
Having done this analysis, we identified the components that could serve our user stories, coming up with Actor Actions Diagram. We then reiterated to club some components, and came up with a domain driven service diagram with user interface interaction. Use case diagrams for each of our main actors also helped us to see how these would be used, and if each of these service provide the non-functional requirements for the use cases it supports. We also defined interactions between components diagram to check if the level of granularity is not too much.
This led us to chose Service Based Architecture. The reasoning for this can be found here. Having done this, we planned the final deployment and depicted it in the deployment diagram.
Now, we knew what our preferable end system looks like. What was left was to think about how we would achieve that stage. We looked at all the current components and database to come with a proposal for the migration. Key points we considered during this was that we would want to solve problems as soon as possible. All this was highlighted in our Migration Plan.
Software system characteristics
Use of service based architecture
Separated data warehouse for reporting
Separate workflow manager for ticket
Use 3d party BI tool for reporting