Designing for Low Latency: Guidelines to lead through the maze of trade-offs