At any given time, all data would look the same regardless of the database server to which the application connects. Thus, a successful scalable application depends on replication. The form you use depends on your specific needs and budget. Clusters are used primarily for performance and fault tolerance. Performance enhancements are achieved via load-balancing across multiple servers in the cluster or by pooling the cluster's resources.
Fault tolerance is achieved via failover.
A cluster of nodes can enhance performance considerably, but the application software must be aware of the clustering and make use of it. A shared-disk cluster has several servers sharing the same physical disks and data but not memory. A software layer manages locking the data to serialize access to the hard disks. These clusters can be complex and expensive, but they require little intervention from the DBAs or programmers. A shared-nothing cluster, meanwhile, is basically a network of separate servers, each holding a portion of the data.