<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h3 class="title">
      <a name="group-replication-use-cases">
      </a>
      20.1.2 Group Replication Use Cases
     </h3>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045134531760">
  </a>
  <p>
   Group Replication enables you to create fault-tolerant systems
      with redundancy by replicating the system state to a set of
      servers. Even if some of the servers subsequently fail, as long it
      is not all or a majority, the system is still available. Depending
      on the number of servers which fail the group might have degraded
      performance or scalability, but it is still available. Server
      failures are isolated and independent. They are tracked by a group
      membership service which relies on a distributed failure detector
      that is able to signal when any servers leave the group, either
      voluntarily or due to an unexpected halt. There is a distributed
      recovery procedure to ensure that when servers join the group they
      are brought up to date automatically. There is no need for server
      failover, and the multi-source update everywhere nature ensures
      that even updates are not blocked in the event of a single server
      failure. To summarize, MySQL Group Replication guarantees that the
      database service is continuously available.
  </p>
  <p>
   It is important to understand that although the database service
      is available, in the event of an unexpected server exit, those
      clients connected to it must be redirected, or failed over, to a
      different server. This is not something Group Replication attempts
      to resolve. A connector, load balancer, router, or some form of
      middleware are more suitable to deal with this issue. For example
      see
   <a class="ulink" href="/doc/mysql-router/8.4/en/" target="_top">
    MySQL Router 8.4
   </a>
   .
  </p>
  <p>
   To summarize, MySQL Group Replication provides a highly available,
      highly elastic, dependable MySQL service.
  </p>
  <div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Tip
   </div>
   <p>
    To deploy multiple instances of MySQL, you can use
    <a class="ulink" href="/doc/mysql-shell/8.4/en/mysql-innodb-cluster.html" target="_top">
     InnoDB Cluster
    </a>
    which enables you to easily administer a group of MySQL server instances in
    <a class="ulink" href="/doc/mysql-shell/8.4/en/" target="_top">
     MySQL Shell
    </a>
    . InnoDB Cluster wraps MySQL Group Replication in a programmatic environment that enables you easily deploy a cluster of MySQL instances to achieve high availability. In addition, InnoDB Cluster interfaces seamlessly with
    <a class="ulink" href="/doc/mysql-router/8.4/en/" target="_top">
     MySQL Router
    </a>
    , which enables your applications to connect to the cluster without writing your own failover process. For similar use cases that do not require high availability, however, you can use
    <a class="ulink" href="/doc/mysql-shell/8.4/en/mysql-innodb-replicaset.html" target="_top">
     InnoDB ReplicaSet
    </a>
    . Installation instructions for MySQL Shell can be found
    <a class="ulink" href="/doc/mysql-shell/8.4/en/mysql-shell-install.html" target="_top">
     here
    </a>
    .
   </p>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h4 class="title">
       <a name="group-replication-examples-of-use-case-scenarios">
       </a>
       Example Use Cases
      </h4>
     </div>
    </div>
   </div>
   <a class="indexterm" name="idm46045134519136">
   </a>
   <p>
    The following examples are typical use cases for Group
        Replication.
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <span class="emphasis">
        <em>
         Elastic Replication
        </em>
       </span>
       - Environments that
            require a very fluid replication infrastructure, where the
            number of servers has to grow or shrink dynamically and with
            as few side-effects as possible. For instance, database
            services for the cloud.
      </p>
     </li>
     <li class="listitem">
      <p>
       <span class="emphasis">
        <em>
         Highly Available Shards
        </em>
       </span>
       - Sharding is a
            popular approach to achieve write scale-out. Use MySQL Group
            Replication to implement highly available shards, where each
            shard maps to a replication group.
      </p>
     </li>
     <li class="listitem">
      <p>
       <span class="emphasis">
        <em>
         Alternative to asynchronous Source-Replica
            replication
        </em>
       </span>
       - In certain situations, using a
            single source server makes it a single point of contention.
            Writing to an entire group may prove more scalable under
            certain circumstances.
      </p>
     </li>
     <li class="listitem">
      <p>
       <span class="emphasis">
        <em>
         Autonomic Systems
        </em>
       </span>
       - Additionally, you
            can deploy MySQL Group Replication purely for the automation
            that is built into the replication protocol (described
            already in this and previous chapters).
      </p>
     </li>
    </ul>
   </div>
  </div>
 </div>
 <br/>
</div>
