- Compute requirements
- Storage requirements
- I/O bandwidth requirements
Designs generally follow some high-level patterns. Data will need to get into and out of the device, be stored in some kind of batches for processing, then be consumed by the compute workloads according to those batches. How you define those batches ends up defining the data flow and determines the cost.