The Cloud relies heavily on resource replication to support the demands of the clients efficiently. Replicated Cloud services are distributed across large geographic areas and are accessible via the Internet. This paper describes MidCloud; an agent-based middleware that provides Cloud clients with dynamic load balancing and fault tolerance mechanisms for effective utilization of replicated Cloud services and resources. MidCloud can be used to connect clients with multiple replicated Cloud services and provide fast and reliable service delivery from multiple replicas. Several approaches for load balancing and fault tolerance in distributed systems were introduced; however, they require prior knowledge of the environment's operating conditions and/or constant monitoring of these conditions at run time that allows the applications to adjust the load and redistribute the tasks when operational conditions change and when failures occur. These techniques work well when there is no high communication delay. Yet, this is not true in the Cloud, where data storage and computation servers are scattered all over the world and communication delays are usually very high. MidCloud deploys approaches to reduce the negative impact of high and dynamic delays on the Cloud servers and the Internet. The experimental results show the positive effects of using MidCloud to provide efficient load balancing and fault tolerance. Copyright © 2013 John Wiley & Sons, Ltd.