The best technique to optimize the performance and avoid timeouts when sending a large amount of data to the external system is to use the @future annotation to make the callout asynchronous. The @future annotation is a way to mark a method as asynchronous, which means that it runs in a separate thread and does not block the execution of the main thread. By using the @future annotation, the developer can make the callout to the external system without waiting for the response, which can improve the performance and avoid timeouts. The @future annotation also allows the developer to specify the callout option, which enables the method to make callouts to external web services . Reference: [Asynchronous Apex], [@future Annotation]