Advances in computer networks that support the invocation of remote services in heterogeneous environments enable new levels of software composition. In order to manage composition at such a high level we envision a need for purely compositional languages. We introduce the CLAM composition language, a megaprogramming language. By breaking up the traditional CALL statement the CLAM language focuses on the asynchronous composition of large-scale, autonomous modules. Furthermore the language has the capability to support various optimizations that are specific to software composition.