Is MySQL Cluster just for in-memory databases? In MySQL website I see below definition for MySQL Cluster.


  MySQL Cluster is a technology that enables clustering of in-memory
  databases in a shared-nothing system.


I want to use Clustering for a chat application like viber that there are some Ejabberd servers, which use MySQL as database.Is it necessary that  databases use in-memory tables. according this definition all databases and tables should be in-memory or not? 

This is the link of MySQL Cluster definition.
In NDB Cluster, data does not have be memory-resident, but I think the indexes do.

This technology is good for high availability and high activity.  It is not for the typical RDBMS application.

NDB's Replication is based on "eventual consistency", where in you can do conflicting inserts/updates, but define the rules of which one wins.

While it is closely related to the rest of MySQL, NDB Cluster is not identical; there will be some coding changes if you migrate.