blob: b9637157dbe1677b6ec647b8edd535f04ff80a19 [file] [log] [blame]
<!--
Licensed 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 KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
{{ partial "header.html" . }}
{{ partial "middle.html" . }}
<div class="whatis bg-light">
<div class="container">
<div class="row header">
<h2>What is Apache Ratis&trade;?</h2>
<p class="lead">
Apache Ratis is a highly customizable Raft protocol implementation in Java.</p>
<p class="lead"><a href="https://raft.github.io/">Raft</a> is a easily understandable consensus algorithm to manage replicated state.</p>
<p class="lead">Apache Ratis could be used in any Java application where state should be replicated between multiple instances.</p>
</p>
<p></p>
</div>
</div>
</div>
<div class="main-section feature-list-group">
<div class="container">
<div class="row feature-list">
<h2>Features</h2>
<div class="col-md-6 col-sm-6 feature-item">
<span class="glyphicon glyphicon-transfer" aria-hidden="true"></span>
<i class="fa fa-5x fa-fw m-y-3 text-info fa-child"></i>
<h4>Pluggable transport</h4>
<p>
Ratis provides a pluggable transport layer. By default gRPC, Netty+Protobuf and Apache Hadoop RPC based transports are provided.
</p>
<p>
</p>
<p></p>
</div>
<div class="col-md-6 col-sm-6 feature-item">
<span class="glyphicon glyphicon-log-in" aria-hidden="true"></span>
<h4>Pluggable state machine</h4>
<p>
Ratis supports a log and state machine. State machine typically contains the data that you want to make highly available. Ratis makes it easy to use your own state machine.
</p>
</div>
</div><!-- /.feature-list -->
<div class="row feature-list">
<div class="col-md-6 col-sm-6 feature-item">
<span class="glyphicon glyphicon-tasks" aria-hidden="true"></span>
<h4>Pluggable raft log</h4>
<p>RAFT log is also pluggable, users can provide their own log implementation. The default
implementation
stores log in local files.</p>
<p>
Application can define the policies of how to write data and where it should be written easily.
</p>
</div>
<div class="col-md-6 col-sm-6 feature-item">
<span class="glyphicon glyphicon-dashboard" aria-hidden="true"></span>
<h4>Pluggable metrics</h4>
<p>Ratis provides a pluggable observation layer. By default (ratis-metrics-default), it uses the shaded Dropwizard 4 provided by ratis-thirdparty.
Another implementation can be found in ratis-metrics-dropwizard3. Users can provide their own metrics implementations.
</p>
</div>
</div>
<div class="row feature-list">
<div class="col-md-6 col-sm-6 feature-item">
<span class="glyphicon glyphicon-hdd" aria-hidden="true"></span>
<h4>Log Service</h4>
<p>Ratis provides a log service recipe provides StateMachines to implement a distributed log service with a focused client API. For more information,
please read the <a href="logservice">LogService documentation</a>.</p>
</div>
</div>
</div><!-- /.container -->
</div><!-- /.feature-list-group -->
<a name="news"></a>
<div class="main-section bg-light">
<div class="container">
<div class="row header">
<h2>Latest news</h2>
{{ range where .Data.Pages "Section" "post" }}
<div class="panel-heading clearfix"><a class="pull-left" href="{{.RelPermalink}}">{{.Title}}</a>
<small class="pull-right">{{dateFormat "2006 Jan 2 " .Date}}</small>
</div>
{{end}}
</div>
</div>
</div>
<a name="gettingstarted"></a>
<div class="main-section bg-light">
<div class="container">
<div class="row header">
{{range where .Site.Pages "Title" "Getting started"}}
<h2>{{.Title}}</h2>
{{.Content}}
{{end}}
</div>
</div>
</div>
<a name="community"></a>
<div class="main-section">
<div class="container">
<div class="row header">
{{range where .Site.Pages "Title" "Community"}}
<h2>{{.Title}}</h2>
{{.Content}}
{{end}}
</div>
</div>
</div>
<a name="source"></a>
<div class="main-section bg-light">
<div class="container">
<div class="row header">
{{range where .Site.Pages "Title" "Source"}}
<h2>{{.Title}}</h2>
{{.Content}}
{{end}}
</div>
</div>
</div>
<a name="resources"></a>
<div class="main-section">
<div class="container">
<div class="row header">
<h2>Resources</h2>
<p>Are you interested in learning more about Apache Ratis? Excellent! Here are some resources.</p>
<ul>
<li>
<a href="//www.slideshare.net/TszWoNicholasSze/apache-ratis-in-search-of-a-usable-raft-library"
title="Apache Ratis - In Search of a Usable Raft Library" target="_blank">
Apache Ratis - In Search of a Usable Raft Library</a>
<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/3OyDeDVxSWhIcd" width="595" height="485"
frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;
margin-bottom:5px; max-width: 100%;" allowfullscreen>
</iframe>
</li>
<li> <a href="//www.slideshare.net/Hadoop_Summit/high-throughput-data-replication-over-raft" title="High throughput data replication over RAFT" target="_blank">High throughput data replication over RAFT</a> from DataWorks Summit</a>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/40nJZyfhrysXeK" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<div style="margin-bottom:5px"></div></li>
</div>
</div>
</div>
{{ partial "footer.html" . }}