 <!--
 ▄▄▄       ██▓███   ▄▄▄       ▄████▄   ██░ ██ ▓█████     ██▓  ▄████  ███▄    █  ██▓▄▄▄█████▓▓█████
▒████▄    ▓██░  ██▒▒████▄    ▒██▀ ▀█  ▓██░ ██▒▓█   ▀    ▓██▒ ██▒ ▀█▒ ██ ▀█   █ ▓██▒▓  ██▒ ▓▒▓█   ▀
▒██  ▀█▄  ▓██░ ██▓▒▒██  ▀█▄  ▒▓█    ▄ ▒██▀▀██░▒███      ▒██▒▒██░▄▄▄░▓██  ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█  ▄    ░██░░▓█  ██▓▓██▒  ▐▌██▒░██░░ ▓██▓ ░ ▒▓█  ▄
 ▓█   ▓██▒▒██▒ ░  ░ ▓█   ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒   ░██░░▒▓███▀▒▒██░   ▓██░░██░  ▒██▒ ░ ░▒████▒
 ▒▒   ▓▒█░▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ░▒ ▒  ░ ▒ ░░▒░▒░░ ▒░ ░   ░▓   ░▒   ▒ ░ ▒░   ▒ ▒ ░▓    ▒ ░░   ░░ ▒░ ░
  ▒   ▒▒ ░░▒ ░       ▒   ▒▒ ░  ░  ▒    ▒ ░▒░ ░ ░ ░  ░    ▒ ░  ░   ░ ░ ░░   ░ ▒░ ▒ ░    ░     ░ ░  ░
  ░   ▒   ░░         ░   ▒   ░         ░  ░░ ░   ░       ▒ ░░ ░   ░    ░   ░ ░  ▒ ░  ░         ░
      ░  ░               ░  ░░ ░       ░  ░  ░   ░  ░    ░        ░          ░  ░              ░  ░
-->

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/features/servicegrid.html" />
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <title>Distributed Service Grid - Apache Ignite</title>
    <!--#include virtual="/includes/styles.html" -->

    
</head>
<body>
<!--#include virtual="/includes/header.html" -->
<article>
    <header>
        <div class="container">
            <h1>Deploy User-Defined <strong>Services</strong></h1>
        </div>
    </header>
    <div class="container">
            
    
    <p>
        Apache Ignite® Service Grid allows for deployments of arbitrary user-defined services on the cluster.
        You can implement and deploy any service, such as custom counters, ID generators,
        hierarchical maps, etc.
    </p>
    <img class="diagram-right img-responsive" src="/images/ignite_service_grid_v1.png" style="max-width: 35%;" alt="Deploy User-Defined Services" />
    <p>
        The main use case of the service grid is ability to deploy various types of
        <b>singleton services in the cluster</b>. However, in case if you need multiple instances
        of a service, Ignite will also ensure proper deployment and fault tolerance of all
        service instances.
    </p>
        
    <h2>GitHub Examples:</h2>
    <p>
        Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/servicegrid" target="github">service grid examples</a> available on GitHub.
    </p>
                    
    <h2>Code Examples:</h2>
    <!-- Nav tabs -->
    <ul id="service-examples" class="nav nav-tabs">
        <li><a href="#service-define" aria-controls="home" data-toggle="tab" class="active">Service Definition</a></li>
        <li><a href="#service-deploy" aria-controls="home" data-toggle="tab">Service Deployment</a></li>
    </ul>

    <!-- Tab panes -->
    <div class="tab-content">
        <div class="tab-pane active" id="service-define">
            <pre class="line-numbers"><code class="language-java">
                // Simple service implementation.
                public class MyIgniteService implements Service {
                    // Example of ignite resource injection. All resources are optional.
                    // You should inject resources only as needed.
                    @IgniteInstanceResource
                    private Ignite ignite;
                    ...

                    @Override public void cancel(ServiceContext ctx) {
                        // No-op.
                    }

                    @Override public void execute(ServiceContext ctx) {
                        // Loop until service is cancelled.
                        while (!ctx.isCancelled()) {
                            // Do something.
                            ...
                        }
                    }
                }</code>
            </pre>
        </div>
        <div class="tab-pane" id="service-deploy">
            <pre class="line-numbers"><code class="language-java">
                Ignite ignite = Ignition.ignite();

                IgniteServices svcs = ignite.services();

                // Deploy cluster-singleton service.
                svcs.deployClusterSingleton("myClusterSingleton", new MyIgniteService());
            </code></pre>
        </div>
    </div>
           
    
    
        
    <h2>Service Grid Features</h2>
    <table class="table table-bordered table-striped" name="Service Grid Features">
        <thead>
            <tr>
                <th width="35%" class="left">Feature</th>
                <th>Description</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="left">User-Defined Services</td>
                <td>
                    <p>
                        Users can define their own services and Ignite will automatically distribute
                        these services over the cluster. For example, you can create your own specialized
                        distributed counters, or a custom data loading service, or any other logic, and
                        deploy it onto the cluster.
                    </p>
                    <div class="page-links">
                        <a href="http://apacheignite.readme.io/docs/service-grid" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="left">Cluster Singletons</td>
                <td>
                    <p>
                        Ignite allows to deploy any number of services on any of the grid nodes. However,
                        the most commonly used feature is to deploy singleton services on the cluster.
                        Ignite will manage the singleton contract regardless of topology changes and
                        node crashes.
                    </p>
                    <div class="page-links">
                        <a href="http://apacheignite.readme.io/docs/cluster-singletons" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="left">Fault Tolerance</td>
                <td>
                    <p>
                        Ignite always guarantees that services are continuously available, and are deployed
                        according to the specified configuration, regardless of any topology changes or
                        node crashes.
                    </p>
                    <div class="page-links">
                        <a href="http://apacheignite.readme.io/docs/service-grid#load-balancing" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="left">Load Balancing</td>
                <td>
                    <p>
                        In all cases, other than singleton service deployment, Ignite will automatically make
                        sure that about an equal number of services are deployed on each node within the
                        cluster. Whenever cluster topology changes, Ignite will re-evaluate service
                        deployments and may re-deploy an already deployed service on another node for better
                        load balancing.
                    </p>
                    <div class="page-links">
                        <a href="http://apacheignite.readme.io/docs/service-grid#load-balancing" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
                    </div>
                </td>
            </tr>
        </tbody>
    </table>			 	

    </div>
</article>
<!--#include virtual="/includes/footer.html" -->
</div>
<!--#include virtual="/includes/scripts.html" -->
</body>
</html>
