Trade-offs in system design