To retrieve data from an external system in real time during a flow, the developer should use an invocable method. Option B: An invocable method public with sharing class OrderService { @InvocableMethod(callout=true) public static List<OrderInfo> getOrderData(List<String> inputs) { // Callout to external system and return data } } Reference: "To invoke Apex methods that perform callouts from a flow, use the @InvocableMethod annotation with callout=true." - Salesforce Developer Guide: Invocable Methods Why Other Options Are Incorrect: Option A: An Apex controller is typically used with Visualforce pages or Aura components, not directly with Flows. Option C: An outbound message sends data to external systems but does not retrieve data. Option D: An Apex REST class exposes endpoints for external systems to call into Salesforce, not for Salesforce to call out.