A. Using large-grain components improves performance but reduces maintainability
B. Introducing redundant data improves availability but makes security more difficult
C. Localizing safety-related features usually means more communication so degraded performance
D. All of the mentioned
Explanation: High availability architecture can be affected by several design factors that are required to be maintained to ensure that no single points of failure exist in such design.