When designing reusable components for a design system, how do you account for technical constraints such as latency and state management?