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

<!--
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
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html>
<html>
<head>
<link rel="canonical" href="https://ignite.apache.org/blogs.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>Blog Posts - Apache Ignite</title>
    <link media="all" rel="stylesheet" href="css/all.css?v=1514336028">
    <link href="https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="wrapper">
    <!--#include virtual="/includes/header.html" -->

    <main id="main" role="main" class="container">

        <section id="blogs" class="page-section">
            <h1 class="first">Apache Ignite Blog Posts</h1>
            <div class="col-sm-12 col-md-12 col-xs-12" style="padding-left: 0; padding-right: 20px;">
                <section id="meltdown-and-spectre-patches-show" class="page-section blog-section">
                    <h3>Meltdown and Spectre patches show negligible impact to Apache Ignite performance</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | January 30, 2018</span><br/>
                    <p>
                        Apache Ignite community applied security patches against the notorious Meltdown Spectre vulnerabilities
                        and completed performance testing of general operations and workloads that are typical for Ignite deployments.
                    </p>

                    <p>
                        <a href="https://blogs.apache.org/ignite/entry/meltdown-and-spectre-patches-show" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-transactions-architecture-concurrency-modes-and-isolation-levels" class="page-section blog-section">
                    <h3>Apache Ignite Transactions Architecture: Concurrency Modes and Isolation Levels</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | January 25, 2017</span><br/>
                    <p>
                        Most modern multi-user applications allow concurrent data access and modification.
                        To manage this capability and ensure that the system moves from one consistent state to another,
                        the concept of transactions is used. Transactions rely upon locks, which can be acquired at
                        the beginning of a transaction (pessimistic locking) or at the end of a transaction (optimistic locking) before work is committed.
                    </p>
                    <p>
                        <a href="https://www.gridgain.com/resources/blog/apache-ignite-transactions-architecture-concurrency-modes-and-isolation-levels" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-cassandra-vs-apache-ignite-affinity-colloca" class="page-section blog-section">
                    <h3>Apache Cassandra vs. Apache Ignite: Affinity Collocation and Distributed SQL</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | January 23, 2018</span><br/>
                    <p>
                        The simplified software architecture we get with Ignite is one of its many advantages over Cassandra. Read on to learn how.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/apache-cassandra-vs-apache-ignite-affinity-colloca" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-transactions-architecture-2-phase-commit-protocol" class="page-section blog-section">
                    <h3>Apache Ignite Transactions Architecture: 2-phase commit protocol</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | January 12, 2017</span><br/>
                    <p>
                        Apache Ignite supports a range of different Application Programming Interfaces (APIs).
                        In this multi-part article series, we will take a more detailed look at how Apache Ignite manages
                        transactions in its key-value API and some of the mechanisms and protocols it supports.
                    </p>
                    <p>
                        In this first part, we will begin with a discussion of the two-phase commit (2PC) protocol and then look at how this works with various types of cluster nodes.
                    </p>

                    <p>
                        <a href="https://www.gridgain.com/resources/blog/apache-ignite-transactions-architecture-2-phase-commit-protocol" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="protecting-apache-ignite-from-meltdown" class="page-section blog-section">
                    <h3>Protecting Apache Ignite from 'Meltdown' and 'Spectre' vulnerabilities</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | January 08, 2018</span><br/>
                    <p>
                        The world was rocked after the recent disclosure of the Meltdown and Spectre vulnerabilities that literally affect almost all software ever developed.
                        Both issues are related to the way all modern CPUs are designed and this is why they have opened unprecedented security breaches --
                        making the software, including Apache Ignite, vulnerable to hacker attacks.
                    </p>

                    <p>
                        <a href="https://blogs.apache.org/ignite/entry/protecting-apache-ignite-from-meltdown" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-cassandra-or-apache-ignitethoughts-on-a-sim" class="page-section blog-section">
                    <h3>Apache Cassandra vs. Apache Ignite: Thoughts on Simplified Architecture</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | December 29, 2017</span><br/>
                    <p>
                        Learn about the dark side of Cassandra's data modeling concept and learn how to get around it with simpler architecture.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/apache-cassandra-or-apache-ignitethoughts-on-a-sim" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="in-memory-technologies-meeting-healthcares-fast-da-1" class="page-section blog-section">
                    <h3>In-Memory Technologies: Meeting Healthcare's Fast Data Challenges (Part 2)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | December 28, 2017</span><br/>
                    <p>
                        Learn about a healthcare case study from a company called e-Therapeutics, which specializes in drug discovery and development, and see how they used Apache Ignite.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/in-memory-technologies-meeting-healthcares-fast-da-1" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="in-memory-technologies-meeting-healthcares-fast-da" class="page-section blog-section">
                    <h3>In-Memory Technologies: Meeting Healthcare's Fast Data Challenges (Part 1)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | December 19, 2017</span><br/>
                    <p>
                        Modern healthcare has many demanding requirements for the storage and querying of data. Ignite provides a range of capabilities that can meet these needs perfectly.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/in-memory-technologies-meeting-healthcares-fast-da" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="intelreg-optane-ssds-outperforms-regular-ssds-veri" class="page-section blog-section">
                    <h3>Intel Optane™ SSDs Outperforms Regular SSDs - Verified on Apache Ignite</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | October 31, 2017</span><br/>
                    <p>
                        This article shows how you can improve performance in random write workloads of a database by replacing regular SSDs with Intel Optane SSDs.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/intelreg-optane-ssds-outperforms-regular-ssds-veri" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="kubernetes-and-apache-ignite-deployment-on-aws" class="page-section blog-section">
                    <h3>Kubernetes and Apache Ignite Deployment on AWS</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | September 28, 2017</span><br/>
                    <p>
                        Bring K8s and Apache Ignite to the cloud (AWS, at least) with this guide, which touches on Kubernetes' installation, configuration, and connecting to Ignite clusters.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/kubernetes-and-apache-ignite-deployment-on-aws" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="ssd-performance-tips-checked-on-apache-ignite" class="page-section blog-section">
                    <h3>SSD Performance Tips - Checked on Apache Ignite</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | September 26, 2017</span><br/>
                    <p>
                        In this blog post, Denis explains how the cache coherence protocol can help you use Apache Ignite to increase the speed and performance of your platform.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/ssd-performance-tips-checked-on-apache-ignite" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="analyzing-ignitenet-code-with-ndepend" class="page-section blog-section">
                    <h3>Analyzing Ignite.NET Code With NDepend</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | September 19, 2017</span><br/>
                    <p>
                        See how NDepend works and how you can use it for code analysis to make sure your Ignite.NET code is clean and providing the best performance possible.
                    </p>

                    <p>
                        <a href="https://dzone.com/articles/analyzing-ignitenet-code-with-ndepend" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="what-is-apache-ignite.html" class="page-section blog-section">
                    <h3>What is Apache Ignite?</h3>
                    <img src="/images/dsetrakyan.png" class="img-circle blog-img"><span class="blog-date">By Dmitriy Setrakyan | September 13, 2017</span><br/>
                    <p>
                        If you ever looked at Apache Ignite, you have probably noticed that it is a fairly rich platform with lots of components.
                        However, despite the extensive feature set, Ignite community aims to make the platform easy to use and understand.
                        In this blog, author Dmitriy Setrakyan defines Ignite by answering several "<i>Is Ignite a ...?</i>" questions.
                    </p>

                    <p>
                        <a href="http://gridgain.blogspot.com/2017/09/what-is-apache-ignite.html" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="using-java-and-net-apps-to-connect-to-an-apache-ig" class="page-section blog-section">
                    <h3>Using Java and .NET Apps to Connect to an Apache Ignite Cluster</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | September 08, 2017</span><br/>
                    <p>
                        In many organizations, different departments and teams work with different programming languages and frameworks. However, there may be a need for a
                        common storage format to allow various tools to access the same data. Apache Ignite provides the flexibility for development teams to continue working with
                        their favorite programming languages and tools and have the ability to work with the same data in the cluster.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/using-java-and-net-apps-to-connect-to-an-apache-ig" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-in-memory-performance" class="page-section blog-section">
                    <h3>Apache Ignite - In Memory Performance with Durability of Disk</h3>
                    <img src="/images/dsetrakyan.png" class="img-circle blog-img"><span class="blog-date">By Dmitriy Setrakyan | September 07, 2017</span><br/>
                    <p>
                        Starting with 2.1 release, Apache Ignite has become one of a very few in-memory computing systems that provides its own distributed
                        persistence layer. Essentially, users do not have to integrate Ignite with any type of 3rd party databases (although such integration is still supported),
                        and start using Ignite as a primary storage of their data on disk and in memory. So, what makes Ignite data storage unique?
                    </p>

                    <p>
                        <a href="http://gridgain.blogspot.com/2017/09/apache-ignite-in-memory-performance.html" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="kubernetes-and-apacher-ignitetm-deployment-aws" class="page-section blog-section">
                    <h3>Kubernetes and Apache® Ignite™ Deployment on AWS</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | September 07, 2017</span><br/>
                    <p>
                        This article will walk through the steps required to get Kubernetes and Apache Ignite deployed on Amazon Web Services (AWS).
                        The local computer operating system used was Ubuntu and if you follow the steps in this article, you may need to adjust the commands as appropriate for your operating system and environment.
                    </p>
                    <p>
                        <a href="https://www.gridgain.com/resources/blog/kubernetes-and-apacher-ignitetm-deployment-aws" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-tip-peer-class-loading-deployment-ma" class="page-section blog-section">
                    <h3>Apache Ignite Tip: Peer Class Loading Deployment Magic</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | August 29, 2017</span><br/>
                    <p>
                        Apache Ignite is great for modern data processing. It has a feature called Zero Deployment which is very useful for P2P class loading.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/apache-ignite-tip-peer-class-loading-deployment-ma" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="whats-new-in-apache-ignitenet-21r" class="page-section blog-section">
                    <h3>What's New in Apache Ignite .NET 2.1</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | August 02, 2017</span><br/>
                    <p>
                        Take a look at what's new in the latest release of Apache Ignite 2.1 from a .NET perspective. With this relase, Ignite is a complete database with a unique feature set.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/whats-new-in-apache-ignitenet-21" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-2-1-a" class="page-section blog-section">
                    <h3>Apache Ignite 2.1 - A Leap from In-Memory to Memory-Centric Architecture</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | May 12, 2017</span><br/>
                    <p>
                        The power and beauty of in-memory computing projects is that they truly do what they state -- deliver outstanding performance
                        improvements by moving data closer to the CPU, using RAM as a storage and spreading the data sets out across a cluster of machines relying on horizontal scalability.
                    </p>
                    <p>
                        However, there is an unspoken side of the story. No matter how fast a platform is, we do not want to lose the data and encounter cluster restarts or other outages. To guarantee this we need to somehow make data persistent on the disk.
                    </p>
                    <p>
                        <a href="https://blogs.apache.org/ignite/entry/apache-ignite-2-1-a"target="_blank">Read more</a>
                    </p>
                </section>
                <section id="implementing-ignitenet-plugin-distributed-semaphor" class="page-section blog-section">
                    <h3>Implementing the Ignite.NET Plugin: Distributed Semaphore</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | July 23, 2017</span><br/>
                    <p>
                        See how the Apache Ignite.NET 2.0 plugin system can make Ignite and third party Java APIs like Ignite Semaphore available in .NET.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/implementing-ignitenet-plugin-distributed-semaphor" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apachereg-ignite-part-6" class="page-section blog-section">
                    <h3>Getting Started With Apache Ignite (Part 6)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | July 16, 2017</span><br/>
                    <p>
                        A major use case for the Service Grid is to deploy a Singleton. There are a number of different types of Singletons that Apache Ignite supports but two common types are — Node Singleton and Cluster Singleton.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apachereg-ignite-part-6" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apachereg-ignite-part-5" class="page-section blog-section">
                    <h3>Getting Started With Apache Ignite (Part 5)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | July 10, 2017</span><br/>
                    <p>
                        Apache Ignite is a true Swiss Army Knife, providing scalability and performance for many varied and demanding workloads.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apachereg-ignite-part-5" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-with-spring-data" class="page-section blog-section">
                    <h3>Apache Ignite with Spring Data</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuyian | July 09, 2017</span><br/>
                    <p>
                        Apache Ignite IgniteRepository implements Spring Data CrudRepository interface and extends basic capabilities of the CrudRepository, which in turns supports:
                    </p>
                    <ul class="page-list">
                        <li>Basic CRUD operations on a repository for a specific type.</li>
                        <li>Access to the Apache Ignite SQL grid via Spring Data API.</li>
                    </ul>
                    <p>
                        <a href="http://frommyworkshop.blogspot.ru/2017/07/apache-ignite-with-spring-data.html" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apachereg-ignite-part-4" class="page-section blog-section">
                    <h3>Getting Started With Apache Ignite (Part 4)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | July 03, 2017</span><br/>
                    <p>
                        Take a look at the Apache Ignite Streaming Grid component and see how it can help you ingest, manage, and query streaming data.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apachereg-ignite-part-4" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apachereg-ignite-part-3" class="page-section blog-section">
                    <h3>Getting Started With Apache Ignite (Part 3)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | June 18, 2017</span><br/>
                    <p>
                        Get a brief look at the Apache Ignite Compute Grid component and learn how it ensures that tasks can be executed in parallel within the grid.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apachereg-ignite-part-3" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apachereg-ignite-part-2" class="page-section blog-section">
                    <h3>Getting Started With Apache Ignite (Part 2)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | June 04, 2017</span><br/>
                    <p>
                        In Apache Ignite, a data grid can be thought of as a distributed Key-Value (K-V) store or a distributed HashMap. Learn more about it in this article.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apachereg-ignite-part-2" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="adonet-as-ignitenet-cache-store" class="page-section blog-section">
                    <h3>ADO.NET as Ignite.NET Cache Store</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | May 31, 2017</span><br/>
                    <p>
                        Learn about implementing an efficient Ignite.NET persistent store with ADO.NET and SQL Server, continuing from a previous article on the entity framework cache store.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/adonet-as-ignitenet-cache-store" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apachereg-ignite-part-i" class="page-section blog-section">
                    <h3>Getting Started With Apache Ignite (Part 1)</h3>
                    <img src="/images/achaudhri.png" class="img-circle blog-img"><span class="blog-date">By Akmal Chaudhri | May 29, 2017</span><br/>
                    <p>
                        In this series of articles, I will share what I learned about Apache Ignite as a beginner, starting with clustering and deployment.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apachereg-ignite-part-i" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="how-to-monitor-multiple-apache-ignite-clusters" class="page-section blog-section">
                    <h3>How to Monitor Mulitple Apache Ignite Clusters</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | May 24, 2017</span><br/>
                    <p>
                        With its latest release, Apache Ignite 2.0 introduced support for DDL, a redesigned off-heap memory architecture, distributed algebra, Spring data integration,
                        support for Hibernate 5, Rocket MQ Integration, as well as plenty of improvements to the currently existing Apache Ignite feature set to enhance speed and performance.
                        Another key feature rolled in is multi-cluster support for Apache Ignite Web Console, which means you can monitor and manage multiple Ignite clusters in parallel
                        from a single instance of Ignite Web console deployed on your system.
                    </p>
                    <p>
                        This tutorial shows how to start two separate clusters on your system and connect it to an instance of Ignite Web Console deployed locally.
                    </p>
                    <p>
                    <a href="https://dzone.com/articles/how-to-monitor-multiple-apache-ignite-clusters" target="_blank">Read more</a>
                </p>
                </section>
                <section id="benchmarking-apache-ignite-still-keeps-ahead-of-ha-1" class="page-section blog-section">
                    <h3>Benchmarking: Apache Ignite Still Keeps Ahead Of Hazelcast</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | May 12, 2017</span><br/>
                    <p>
                        There's an ad saying that Hazelcast is up to 50% faster than Apache Ignite, but that may not be true anymore. Check out this benchmark to get the true story.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/benchmarking-apache-ignite-still-keeps-ahead-of-ha-1"target="_blank">Read more</a>
                    </p>
                </section>
                <section id="Whats-New-In-Ignite-Net-2.0/" class="page-section blog-section">
                    <h3>What's new in Apache Ignite.NET 2.0</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | May 12, 2017</span><br/>
                    <p>
                        Apache Ignite 2.0 has been released last week. Changes on Java side are tremendous, but Ignite.NET has some cool things to offer as well. Read on to to find out more.
                    </p>
                    <p>
                        <a href="https://ptupitsyn.github.io/Whats-New-In-Ignite-Net-2.0/"target="_blank">Read more</a>
                    </p>
                </section>
                <section id="an-impatient-start-with-apache-ignite.html" class="page-section blog-section">
                    <h3>An impatient start with Apache Ignite machine learning grid</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuyian | May 12, 2017</span><br/>
                    <p>
                        Recently Apache Ignite 2.0 introduced a beta version of the in-memory machine learning grid, which is a distributed machine learning library built on top of the Apache IMDG.
                        This beta release of ML library can perform local and distributed vector, decompositions and matrix algebra operations.
                        The data structure can be stored in Java heap, off-heap or distributed Ignite caches. In this short post, we are going to download the new Apache Ignite 2.0 release, build the example and run them.
                    </p>
                    <p>
                        <a href="http://frommyworkshop.blogspot.co.uk/2017/05/an-impatient-start-with-apache-ignite.html"target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-2-0-redesigned" class="page-section blog-section">
                    <h3>Apache Ignite 2.0: Redesigned Off-heap Memory, DDL and Machine Learning</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | May 05, 2017</span><br/>
                    <p>
                        This major release was under the development for a long time. The community spent almost a year incorporating tremendous changes to the legacy Apache Ignite 1.x architecture.
                        Curious why are we so boastful about this? Some of the main features of Apache Ignite 2.0 are:
                    </p>
                    <ul class="page-list">
                        <li>Re-engineered Off-Heap Memory Architecture</li>
                        <li>Data Definition Language</li>
                        <li>Machine Learning Grid Beta - Distributed Algebra</li>
                        <li>Integration with Spring Data, Rocket MQ, Hibernate 5</li>
                        <li>Enchanced Inite.Net and Ignite C++ APIs</li>
                    </ul>
                    <p>
                        See <a href="https://ignite.apache.org/releases/2.0.0/release_notes.html">release notes</a> for a full list of the changes.
                    </p>
                    <p>
                        <a href="https://blogs.apache.org/ignite/entry/apache-ignite-2-0-redesigned"target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-build-cloud-ready-applications-today/" class="page-section blog-section">
                    <h3>Apache Ignite: Build Cloud Ready Applications Today!</h3>
                    <img src="/images/tcampbell.png" class="img-circle blog-img"><span class="blog-date">By Turik Campbell | May 02, 2017</span><br/>
                    <p>
                        All applications fundamentally are comprised of computing instructions and data the instructions utilize to solve a problem.
                        These applications are high performant when computing instructions and data  are  distributed among available computing resources.
                        A ‘<b>cloud ready</b>’ application should be able to:
                        <ul class="page-list">
                            <li>Massively parallelize compute instructions.</li>
                            <li>Massively parallelize data.</li>
                            <li>Scale automatically as hardware resources are introduced into the network.</li>
                        </ul>
                        All of these features and more are provided by Apache Ignite’s in memory computing platform.
                    </p>
                    <p>
                        <a href="http://www.techbysample.com/2017/05/02/apache-ignite-build-cloud-ready-applications-today/"target="_blank">Read more</a>
                    </p>
                </section>
                <section id="light-a-fire-under-cassandra-with-apache-ignite" class="page-section blog-section">
                    <h3>Light a fire under Cassandra with Apache Ignite</h3>
                    <img src="/images/nivanov.png" class="img-circle blog-img"><span class="blog-date">By Nikita Ivanov | April 27, 2017</span><br/>
                    <p>
                        Over time as business requirements evolve and Cassandra deployments scale, many organizations find themselves
                        constrained by some of Cassandra’s limitations, which in turn restrict what they can do with their data.
                        Apache Ignite, an in-memory computing platform, provides these organizations with a new way to access and manage their Cassandra infrastructure,
                        allowing them to make Cassandra data available to new OLTP and OLAP use cases while delivering extremely high performance.
                    </p>
                    <p>
                        <a href="http://www.infoworld.com/article/3191895/application-development/light-a-fire-under-cassandra-with-apache-ignite.html?idg_eid=03bb84ebe9f7158960af5af25fca8251&email_SHA1_lc=c9414c0a1b6ee5097514457b3b74225bbb9c4505&cid=ifw_nlt_infoworld_daily_2017-04-27&utm_source=Sailthru&utm_medium=email&utm_campaign=InfoWorld%20Daily:%20Morning%20Edition%202017-04-27&utm_term=infoworld_daily" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="microservices-on-top-of-an-in-memory-data-grid-par" class="page-section blog-section">
                    <h3>Microservices on Top of an In-Memory Data Grid: Part III</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | April 26, 2017</span><br/>
                    <p> This is the last blog post in a series recommending how to design and implement microservices-based architecture on top of Apache Ignite In-Memory Data Fabric. The first two posts in the series can be found here:</p>
                    <ul class="page-list">
                        <li><a href="https://dzone.com/articles/running-microservices-on-top-of-in-memory-data-gri" target="_blank">Part I</a> - Overview of the proposed solution.</li>
                        <li><a href="https://dzone.com/articles/running-microservices-on-top-of-in-memory-data-gri-1" target="_blank">Part II</a> - Various coding templates needed to implement the solution in a live environment.</li>
                    </ul>
                    <p>
                        This final post describes how to integrate the cluster with a persistent store and send requests to the microservices from external applications -- apps that know nothing about the cluster and don't rely on its APIs.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/microservices-on-top-of-an-in-memory-data-grid-par" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="linq-vs-sql-in-ignitenet-performance" class="page-section blog-section">
                    <h3>LINQ vs. SQL in Ignite.NET: Performance</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | March 29, 2017</span><br/>
                    <p>
                        Ignite.NET offers a LINQ provider which translates C# expressions to SQL queries. LINQ has many benefits over SQL — but at what cost? Read on to find out.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/linq-vs-sql-in-ignitenet-performance" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="getting-started-with-apache-ignite-part-1" class="page-section blog-section">
                    <h3>Getting Started with Apache Ignite - Part 1</h3>
                    <img src="/images/dtraphagen.png" class="img-circle blog-img"><span class="blog-date">By Dani Traphagen | March 29, 2017</span><br/>
                    <p>
                        My best definition of Apache Ignite is that it's a distributed in-memory cache, query and compute engine built to work with
                        large-scale data sets in real-time. A cluster of Ignite nodes (which is simply a combination of server and client nodes) will slide between the application and data layers.
                    </p>
                    <p>
                        <a href="http://dtrapezoid.com/getting-started-with-apache-ignite-part-1.html" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="deploying-apache-ignite-in-kubernetes-on-microsoft" class="page-section blog-section">
                    <h3>Deploying Apache Ignite in Kubernetes on Microsoft Azure</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | March 21, 2017</span><br/>
                    <p>
                        Apache Ignite's most recent release includes a Kubernetes integration. See it in action as you learn to run a cluster on Microsoft Azure.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/deploying-apache-ignite-in-kubernetes-on-microsoft" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="continuous-queries-in-apache-ignite-c-19" class="page-section blog-section">
                    <h3>Continuous Queries in Apache Ignite C++ 1.9</h3>
                    <img src="/images/isapego.png" class="img-circle blog-img"><span class="blog-date">By Igor Sapego | March 21, 2017</span><br/>
                    <p>
                        Apache Ignite 1.9 was released last week and it brings some cool features. One of them is Continuous Queries for Apache Ignite C++ that allows you to track data modifications on caches.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/continuous-queries-in-apache-ignite-c-19" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="modern-application-design-with-in-memory-data-fabr" class="page-section blog-section">
                    <h3>Modern Application Design With In-Memory Data Fabrics</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuiyan | March 16, 2017</span><br/>
                    <p>
                        In-memory grids like Apache Ignite have served as an essential, architectural component for transforming the way businesses use their data to do business.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/modern-application-design-with-in-memory-data-fabr" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="whats-new-in-apache-ignitenet-19" class="page-section blog-section">
                    <h3>What's New in Apache Ignite.NET 1.9</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | March 14, 2017</span><br/>
                    <p>
                        The newest version of Apache Ignite includes TransactionScope API, Distributed DML, and LINQ improvements.
                        Read on to find out how these functionalities can provide enhanced transactional and SQL capabilities.
                    </p>
                    <p>
                        <a href="https://ptupitsyn.github.io/Whats-New-In-Ignite-Net-1-9/" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-igite-19-release" class="page-section blog-section">
                    <h3>Apache Ignite 1.9 Release Highlights</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | March 06, 2017</span><br/>
                    <p>
                        Apache Ignite community released a new version of Apache Ignite In-Memory Data Fabric. Learn more about improvements available in version 1.9.
                    </p>
                    <p>
                        <a href="https://blogs.apache.org/ignite/entry/apache-ignite-1-9-released" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="the-high-performance-in-memory-computing-with-apac" class="page-section blog-section">
                    <h3>Book Review: High Performance In-Memory Computing With Apache Ignite</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuiyan | February 16, 2017</span><br/>
                    <p>
                        The Apache Ignite platform is very big and growing day by day. This book focuses on features of Apache Ignite that help improve application performance.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/the-high-performance-in-memory-computing-with-apac" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="the-asf-asks-have-you" class="page-section blog-section">
                    <h3>The ASF asks: Have you met Apache Ignite?</h3>
                    <img src="/images/apache_poweredby.png" class="img-circle blog-img"><span class="blog-date">By Sally Khudairi | January 18, 2017</span><br/>
                    <p>
                        Did you know that numerous Fortune 500 enterprises depend on Apache Ignite's in-memory data platform to process large-scale data sets in real-time, at orders of magnitude faster than traditional technologies?
                    </p>
                    <p>
                        <a href="https://blogs.apache.org/foundation/entry/the-asf-asks-have-you" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="running-microservices-on-top-of-in-memory-data-gri-1" class="page-section blog-section">
                    <h3>Running Microservices on Top of In-Memory Data Grid: Part II</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | January 18, 2017</span><br/>
                    <p>
                        Let's look into the Apache Ignite Cluster Layer, a GitHub project that includes the basic building blocks needed to implement a proposed microservices-based architecture.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/running-microservices-on-top-of-in-memory-data-gri-1" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="book-high-performance-in-memory" class="page-section blog-section">
                    <h3>Book: High performance in-memory computing with Apache Ignite has been published</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuiyan | January 09, 2017</span><br/>
                    <p>
                        This book wraps all the topics like in-memory data grid, highly available service grid, streaming and in-memory computing use cases from high-performance computing to get the performance gain.
                    </p>
                    <p>
                        <a href="http://frommyworkshop.blogspot.ru/2016/09/book-high-performance-in-memory.html" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="handling-apache-ignite-cluster-data-via-redis-prot" class="page-section blog-section">
                    <h3>Enabling Access to Apache Ignite via Redis Protocol</h3>
                    <img src="/images/rshtykh.png" class="img-circle blog-img"><span class="blog-date">By Roman Shtykh | January 09, 2017</span><br/>
                    <p>
                        The Apache Ignite versions have the ability to store and retrieve data in the grid using any Redis client. Let's make connections to an Ignite cluster and do Redis string operations.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/handling-apache-ignite-cluster-data-via-redis-prot" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-enables-full-fledged-sql-support-for" class="page-section blog-section">
                    <h3>Apache Ignite Enables Full-fledged SQL Support for PHP</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | December 27, 2016</span><br/>
                    <p>
                        It's time to get your SQL statements and queries up and running on Apache Ignite's PHP offerings. You'll need a driver and some setup, but it's quick and easy.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/apache-ignite-enables-full-fledged-sql-support-for" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="using-the-gridgain-web-console-for-automatic-rdbms" class="page-section blog-section">
                    <h3>Using the GridGain Web Console for Automatic RDBMS Integration With Apache Ignite</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | December 19, 2016</span><br/>
                    <p>
                        Apache Ignite can import database schemas and automatically generate all the required XML OR-mapping configurations and
                        Java domain model POJOs that you can easily download and copy into your Apache Ignite project.</p><p>
                        <a href="https://dzone.com/articles/using-the-gridgain-web-console-for-automatic-rdbms" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="geospatial-queries-with-apachereg-ignite" class="page-section blog-section">
                    <h3>Geospatial Queries With Apache Ignite</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | December 16, 2016</span><br/>
                    <p>
                        Storing and querying location data can be useful for any number of apps for projects. Apache Ignite has a geospatial component made just for that.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/geospatial-queries-with-apachereg-ignite" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="whats-new-in-apache-ignitenet-18" class="page-section blog-section">
                    <h3>What's New in Apache Ignite.NET 1.8</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | December 14, 2016</span><br/>
                    <p>
                        The newest version of Apache Ignite includes an entity framework second-level cache, ASP.NET session state cache, custom logging, and LINQ improvements.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/whats-new-in-apache-ignitenet-18" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-ignite-with-jpa-a-missing-element" class="page-section blog-section">
                    <h3>Apache Ignite With JPA: A Missing Element</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuiyan | December 07, 2016</span><br/>
                    <p>
                        Learn how to persist your entities with Apache Ignite and JPA. This tutorial will guide you through the setup of execution of that handy ability.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/apache-ignite-with-jpa-a-missing-element" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="entity-framework-as-ignitenet-cache-store" class="page-section blog-section">
                    <h3>Entity Framework As Ignite.NET Cache Store</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | October 27, 2016</span><br/>
                    <p>
                        Learn how to implement Ignite.NET persistent store with Entity Framework and SQL Server.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/entity-framework-as-ignitenet-cache-store" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="running-microservices-on-top-of-in-memory-data-gri" class="page-section blog-section">
                    <h3>Running Microservices on Top of In-Memory Data Grid: Part I</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | October 26, 2016</span><br/>
                    <p>
                        With this post, we start a series that will provide a guide on building a fault-tolerant, scalable, microservice-based solution with Apache Ignite In-Memory Data Fabric.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/running-microservices-on-top-of-in-memory-data-gri" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="ignitenet-serialization-performance" class="page-section blog-section">
                    <h3>Ignite.NET Serialization Performance</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | October 04, 2016</span><br/>
                    <p>
                        How fast are different Ignite serialization modes? How do they compare to other popular serializers? Find out in this blog by Pavel Tupitsin.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/ignitenet-serialization-performance" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="deadlock-free-transactions-with-apache-ignite" class="page-section blog-section">
                    <h3>Deadlock-Free Transactions with Apache Ignite</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | September 21, 2016</span><br/>
                    <p>
                        Deadlocks can kill services, so see how Apache Ignite avoids it by assigning numbers to transactions in order to compare and utilize them in a fluid manner.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/deadlock-free-transactions-with-apache-ignite" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="aspnet-distributed-output-cache-with-apache-ignite" class="page-section blog-section">
                    <h3>ASP.NET Distributed Output Cache with Apache Ignite</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | September 19, 2016</span><br/>
                    <p>
                        You can speed up your ASP.NET web farm with Apache Ignite distributed caching. Read on to learn more.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/aspnet-distributed-output-cache-with-apache-ignite" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="building-multi-platform-ignite-cluster-java-net" class="page-section blog-section">
                    <h3>Building a Multi-Platform Ignite Cluster: Java + .NET</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | September 09, 2016</span><br/>
                    <p>
                        Ignite cluster can consist of nodes on any supported platform: Java, .NET, and C++. This example shows you how to run a .NET/Java cluster with NuGet and Maven.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/building-multi-platform-ignite-cluster-java-net" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="big-change-in-apache-ignite-17-welcome-the-non-col" class="page-section blog-section">
                    <h3>Apache Ignite 1.7: Welcome Non-Collocated Distributed Joins!</h3>
                    <img src="/images/dmagda.png" class="img-circle blog-img"><span class="blog-date">By Denis Magda | August 24, 2016</span><br/>
                    <p>
                        Apache Ignite 1.7.0 has been recently rolled out, and among the new changes, you can find a killer
                        one that was awaited by many Apache Ignite users and customers for a long time — Non-Collocated Distributed Join support for SQL queries.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/big-change-in-apache-ignite-17-welcome-the-non-col" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="using-apache-ignitenet-in-linqpad" class="page-section blog-section">
                    <h3>Using Apache Ignite.NET in LINQPad</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | August 19, 2016</span><br/>
                    <p>
                        Here is a quick how-to for using Apache Ignite.NET in LINQPad.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/using-apache-ignitenet-in-linqpad" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="whats-new-in-apache-ignitenet-17" class="page-section blog-section">
                    <h3>What's New in Apache Ignite.NET 1.7</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | August 09, 2016</span><br/>
                    <p>
                        Apache Ignite.NET 1.7 brings some pretty cool new features. Read on to find out more!
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/whats-new-in-apache-ignitenet-17" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="getting-started-with-apache-ignitenet-part-3" class="page-section blog-section">
                    <h3>Getting Started with Apache Ignite.NET Part 3: Cache Queries</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | July 28, 2016</span><br/>
                    <p>
                        In Part 3 of Pavel Tupitsyn's series, he covers the cache queries: Scan, SQL, LINQ, and Text.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apache-ignitenet-part-3-cache" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="getting-started-with-apache-ignitenet-part-2" class="page-section blog-section">
                    <h3>Getting Started with Apache Ignite.NET Part 2: Distributed Cache</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | July 16, 2016</span><br/>
                    <p>
                        Learn the cache operations and object serialization of Apache Ignite.NET.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apache-ignitenet-part-2-distr-1" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="getting-started-with-apache-ignitenet-1" class="page-section blog-section">
                    <h3>Getting Started with Apache Ignite.NET Part 1</h3>
                    <img src="/images/ptupitsyn.png" class="img-circle blog-img"><span class="blog-date">By Pavel Tupitsyn | June 25, 2016</span><br/>
                    <p>
                        Learn the basics of using Apache Ignite.NET, from an explanation about the terminology to helpful code snippets illustrating the instructions.</p><p>
                        <a href="https://dzone.com/articles/getting-started-with-apache-ignitenet-1" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="real-time-in-memory-oltp" class="page-section blog-section">
                    <h3>Real-time In-memory OLTP and Analytics with Apache Ignite on AWS</h3>
                    <img src="/images/user-default.png" class="img-circle blog-img"><span class="blog-date">By Babu Elumalai | June 06, 2016</span><br/>
                    <p>
                        This post shows you how to build a Lambda architecture using Apache Ignite, and provides some
                        examples explaining how to perform ANSI SQL on real-time data and how to use it as a cache for OLTP reads.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/real-time-in-memory-oltp-and-analytics-with-apache" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="how-to-read-data-from-presistent-store" class="page-section blog-section">
                    <h3>Apache Ignite: How to Read Data from Persistent Store</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | June 03, 2016</span><br/>
                    <p>
                        A tutorial on how to load data from a MySQL database into an Ignite distributed cache.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/apache-ignite-how-to-read-data-from-persistent-sto" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="pitfalls-of-the-mybatis-caches-with-apache-ignite" class="page-section blog-section">
                    <h3>Pitfalls of the MyBatis Caches with Apache Ignite</h3>
                    <img src="/images/sbhuiyan.png" class="img-circle blog-img"><span class="blog-date">By Shamim Bhuiyan | March 09, 2016</span><br/>
                    <p>
                        A tutorial on how to look at cache entries in Apache Ignite.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/pitfalls-of-the-mybatis-caches-with-apache-ignite" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="linking-apache-ignite-and-apache-kafka-for-highly" class="page-section blog-section">
                    <h3>Linking Apache Ignite and Apache Kafka for Highly Scalable and Reliable Data Processing</h3>
                    <img src="/images/rshtykh.png" class="img-circle blog-img"><span class="blog-date">By Roman Shtykh | March 03, 2016</span><br/>
                    <p>
                        How to link Apache Kafka and Ignite for maintaining scalability and reliability for data processing.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/linking-apache-ignite-and-apache-kafka-for-highly" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="a-universal-streamer-for-apache-ignite-based-on-apache-camel" class="page-section blog-section">
                    <h3>A Universal Streamer for Apache Ignite based on Apache Camel</h3>
                    <img src="/images/user-default.png" class="img-circle blog-img"><span class="blog-date">By Raúl Kripalani | January 28, 2016</span><br/>
                    <p>
                        Apache Ignite has the concept of Data Streamers: components to ingest fast data in a
                        streaming fashion into an Ignite cache from a variety of protocols, technologies or
                        platforms, such as JMS, MQTT, Twitter, Flume, Kafka, etc. However, with Apache Ignite 1.5.0
                        we released the jack of all trades: an Apache Camel streamer.
                    </p>
                    <p>
                        <a href="http://raul.io/a-universal-streamer-for-apache-ignite-based-on-apache-camel/" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="distributed-in-memory-store" class="page-section blog-section">
                    <h3>Apache Ignite: Distributed In-Memory Key-Value Store</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | January 27, 2016</span><br/>
                    <p>
                        For systems where low latency is critical, there is nothing better than caching the data in memory in a distributed cluster.
                        While storing data in memory provides fast data access, distributing it on a cluster of nodes
                        increases application performance and scalability. And Apache Ignite helps you achieve exactly that.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/apache-ignite-distributed-in-memory-key-value-stor" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="getting-started-with-apache-ignite" class="page-section blog-section">
                    <h3>Getting Started with Apache Ignite</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | December 19, 2015</span><br/>
                    <p>
                        This tutorial shows you how to create a simple "Hello World" example in Apache Ignite.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/getting-started-with-apache-ignite" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="apache-ignite-for-database-caching" class="page-section blog-section">
                    <h3>Apache Ignite for Database Caching</h3>
                    <img src="/images/pgarg.png" class="img-circle blog-img"><span class="blog-date">By Prachi Garg | Septmeber 23, 2015</span><br/>
                    <p>
                        A tutorial on how to use Apache Ignite for caching RDBMS, NoSQL, or HDFS databases.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/apache-ignite-for-database-caching-1" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="processing-geographically-distributed-transactions" class="page-section blog-section">
                    <h3>How Apache Ignite Processes Geographically Distributed Transactions</h3>
                    <img src="/images/user-default.png" class="img-circle blog-img"><span class="blog-date">By Yakov Zhdanov | July 22, 2015</span><br/>
                    <p>
                        Imagine a bank offering variety of services to its customers. The customers of the bank are
                        located in different geo-zones (regions), and most of the operations performed by a customer are zone-local,
                        like ATM withdrawals or bill payments... However, some operations, such as wire transfers for example,
                        may affect customers across different zones. Cross-zone operations are not as frequent, but nevertheless
                        need to be supported in a transactional fashion as well.
                    </p>
                    <p>
                        <a href="https://dzone.com/articles/how-apache-ignite-helped-a-large-bank-process-geog-1" target="_blank">Read more</a>
                    </p>
                </section>
            </div>
        </section>
    </main>

    <!--#include virtual="/includes/footer.html" -->
</div>
<!--#include virtual="/includes/scripts.html" -->
<!--
<script type="text/javascript" src="js/jquery.main.js"></script>
-->
</body>
</html>
