Spike: Determine High-Level Architecture for Unified Purchase Flow
Purpose
This spike aims to define the high-level architecture, finalise the technical approach and implementation details for the unified purchase flow.
This should also help us estimate the level of effort required and break the work into manageable tasks. It will help us identify any dependencies and potential risks to streamline planning and implementation.
Objective
- Analyse requirements and define a high-level architecture
- Identify core components, interactions and dependencies
- Estimate level of effort required
- Highlight risks and technical challenges
Designs
[UX] Unify purchase flows in the Customers Port... (#10162 - closed)
Flows involved
- SaaS
- Self-Managed
- Compute Minutes
- Storage
- Add seats
- Upgrade
- Duo Pro SaaS
- Add more Duo Pro SaaS
- Duo Pro Self-Managed
- Add more Duo Pro Self-Managed
Key things to consider
- In future, we’ll be looking at including renewal flow also in the unified purchase flow as well. We need to make sure that the architecture is flexible to add this functionality easily
- Currently, we rely on different APIs to support the different purchase flows above (create subscription API, update subscription API, etc.). It's worth reviewing how the API interactions will function within the new structure. This will help us determine if any API modifications are necessary, or if we can continue using the existing APIs with potential updates in the future.
Result
-
An architectural blueprint document is created with the high level architecture, risks and technical challenges -
Level of effort is estimated
Spike MR
https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/12265+
Blueprint
LoE Estimate
Note: The LoE may need adjusting based on the outcome of Spike: Define API Design For Unified Purchase Flow (#12658) and Spike: Determine Unified Purchase Flow Transiti... (#12657 - closed) once they are complete, the first purchase flow is unified and we better understand the work needed to unify subsequent purchase flows.
| Feature | Estimate | Confidence Level |
|---|---|---|
| Compute Minutes/Storage | 2 FE Engineers + 1 BE Engineer, 3.5 milestones | 7 |
| Self-Managed Premium/Ultimate | 2 FE Engineers + 1 BE Engineer, 1.6 milestones | 7 |
| SaaS Premium/Ultimate | 2 FE Engineers + 1 BE Engineer, 1 milestone | 7 |
| SaaS and Self-Managed Premium to Ultimate upgrade | 2 FE Engineers + 1 BE Engineer, 1.7 milestones | 6 |
| Additional seat purchase for SaaS and Self-Managed Premium | 2 FE Engineers + 1 BE Engineer, 1.8 milestones | 6 |