- Compute requirements
- Storage requirements
- I/O bandwidth requirements
Designs generally follow some high-level patterns. Data needs to get into and out of the device. The system stores it in batches for processing. Then it is consumed by the compute workloads according to those batches. How you define those batches ends up defining the data flow and determines the cost.