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

<!--
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/events.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>Meetups & Events - 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="news" class="page-section">
            <h1 class="first">Meetups & Events</h1>
            <div class="col-sm-12 col-md-12 col-xs-12" style="padding-left: 0; padding-right: 20px;">
                <section id="brighttalk-comparing-apacher-ignitetm-and-cassandratm-hybrid-transactional-applications" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Comparing Apache® Ignite™ and Cassandra™ for Hybrid Transactional Applications (HTAP)
                        <a href="/events.html#brighttalk-comparing-apacher-ignitetm-and-cassandratm-hybrid-transactional-applications"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">BrightTALK Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">March 28, 2018</span>
                    <p>
                        Learn some of the current best practices in building HTAP applications, and the
                        differences between two of the more common technologies companies use: Apache® Cassandra™ and Apache® Ignite™.
                        This session will cover:
                    </p>
                    <ul class="page-list">
                        <li>The requirements for real-time, high volume HTAP applications</li>
                        <li>Architectural best practices, including how in-memory computing fits in and has eliminated tradeoffs between consistency, speed and scale</li>
                        <li>A detailed comparison of Apache Ignite and GridGain® for HTAP applications</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.brighttalk.com/webcast/9059/306965?utm_campaign=webcasts-search-results-feed&utm_content=Ignite&utm_source=brighttalk-portal&utm_medium=web" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.brighttalk.com/webcast/9059/306965?utm_campaign=webcasts-search-results-feed&utm_content=Ignite&utm_source=brighttalk-portal&utm_medium=web"
                             data-a2a-title="Comparing Apache® Ignite™ and Cassandra™ for Hybrid Transactional Applications (HTAP)">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="comparing-apacher-ignitetm-and-cassandratm-hybrid-transactional-applications" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Comparing Apache® Ignite™ and Cassandra™ for Hybrid Transactional Applications (HTAP)
                        <a href="/events.html#comparing-apacher-ignitetm-and-cassandratm-hybrid-transactional-applications"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">March 28, 2018</span>
                    <p>
                        Learn some of the current best practices in building HTAP applications, and the
                        differences between two of the more common technologies companies use: Apache® Cassandra™ and Apache® Ignite™.
                        This session will cover:
                    </p>
                    <ul class="page-list">
                        <li>The requirements for real-time, high volume HTAP applications</li>
                        <li>Architectural best practices, including how in-memory computing fits in and has eliminated tradeoffs between consistency, speed and scale</li>
                        <li>A detailed comparison of Apache Ignite and GridGain® for HTAP applications</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/comparing-apacher-ignitetm-and-cassandratm-hybrid-transactional-applications" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/comparing-apacher-ignitetm-and-cassandratm-hybrid-transactional-applications"
                             data-a2a-title="Comparing Apache® Ignite™ and Cassandra™ for Hybrid Transactional Applications (HTAP)">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="in-memory-computing-essentials-for-data-scientists" class="page-section news-section">
                    <div><h3 style="display:inline-block;">In-Memory Computing Essentials for Data Scientists
                        <a href="/events.html#in-memory-computing-essentials-for-data-scientists"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Symbion IoT Meetup (Copenhagen, Denmark), Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 28, 2018</span>
                    <p>
                        In this hands on workshop, attendees will be introduced to the fundamental capabilities of in-memory computing platforms that
                        boost highly-loaded applications, research projects, risk analysis and fraud detection tasks by
                        storing and processing massive amounts of data in memory and on disk across a cluster of machines.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://symbion.dk/event/in-memory-computing-essentials-for-data-scientists/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://symbion.dk/event/in-memory-computing-essentials-for-data-scientists/"
                             data-a2a-title="In-Memory Computing Essentials for Data Scientists">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apache-ignite-the-in-memory-hammer-in-your-data-science-toolkit" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite: the in-memory hammer in your data science toolkit
                        <a href="/events.html#apache-ignite-the-in-memory-hammer-in-your-data-science-toolkit"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Symbion IoT Meetup (Copenhagen, Denmark), Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 27, 2018</span>
                    <p>
                        In this presentation, Akmal will explain some of the main components of Apache Ignite,
                        such as the Compute Grid, Data Grid and the Machine Learning Grid.
                        Through examples, attendees will learn how Apache Ignite can be used for data analysis.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://symbion.dk/event/apache-ignite-the-in-memory-hammer-in-your-data-science-toolkit/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://symbion.dk/event/apache-ignite-the-in-memory-hammer-in-your-data-science-toolkit/"
                             data-a2a-title="Apache Ignite: the in-memory hammer in your data science toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Atlanta-Apache-Spark-User-Group-events-247807609" class="page-section news-section">
                    <div><h3 style="display:inline-block;">How to Share State Across Multiple Spark Jobs using Apache Ignite
                        <a href="/events.html#Atlanta-Apache-Spark-User-Group-events-247807609"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Atlanta Apache Spark User Group, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 20, 2018</span>
                    <p>
                        This session will demonstrate how to easily share state in-memory across multiple Spark jobs,
                        either within the same application or between different Spark applications using an implementation of the Spark RDD abstraction provided in Apache Ignite
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Atlanta-Apache-Spark-User-Group/events/247807609/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Atlanta-Apache-Spark-User-Group/events/247807609/"
                             data-a2a-title="How to Share State Across Multiple Spark Jobs using Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="big-bang-Data-science-Solutions-events-247996429" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite: The in-memory hammer in your data science toolkit
                        <a href="/events.html#big-bang-Data-science-Solutions-events-247996429"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Big Bang Data Science - Georgia, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 19, 2018</span>
                    <p>
                        Join Big Bang Data Science as we learn from Dr. Akmal Chaudhri about some of the main components
                        of Apache Ignite, such as the Compute Grid, Data Grid, and the Machine Learning Grid.
                        Through examples, attendees will learn how Apache Ignite can be used for data analysis.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/big-bang-Data-science-Solutions/events/247996429/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/big-bang-Data-science-Solutions/events/247996429/"
                             data-a2a-title="Apache Ignite: The in-memory hammer in your data science toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="webinar-choosing-right-in-memory-computing-technology" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Choosing the Right In-Memory Computing Technology
                        <a href="/events.html#webinar-choosing-right-in-memory-computing-technology"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Dmitriy Setrakyan</span><br/><br/>
                    <span class="news-date">March 14, 2018</span>
                    <p>
                        The need for real-time computing has resulted in the growth of many different in-memory computing technologies
                        including caches, in-memory data grids, in-memory databases, streaming technologies and broader
                        in-memory computing platforms.  But what are the best technologies for each type of project?
                        Learn about your options from one of the leading in-memory computing veterans.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/choosing-right-in-memory-computing-technology" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/choosing-right-in-memory-computing-technology"
                             data-a2a-title="Choosing the Right In-Memory Computing Technology">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="NYC-In-Memory-Computing-Meetup-events-248077601" class="page-section news-section">
                    <div><h3 style="display:inline-block;">All the Cool Kids are Doing it: The Whys and Hows of Architecting a Distributed Caching solution for your use case with Apache Ignite
                        <a href="/events.html#NYC-In-Memory-Computing-Meetup-events-248077601"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">NYC In-Memory Computing Meetup, Speaker - Fotios Filacouris</span><br/><br/>
                    <span class="news-date">March 14, 2018</span>
                    <p>
                        Are you considering a distributed cache to help accelerate and scale your existing application?
                        Or do you have a new project that you know the SLAs are going to require an act of magic to produce?
                        Have no fear, Foti is here to walk your through some reference architectures on various use cases that have
                        benefited from using Apache Ignite. He will cover the Why and How of each use case and the pros and cons
                        of different technology choices. How to use Kafka, noSQL, RDBMS, Kubernetes and container deployment, Spark,
                        etc will all be discussed in terms of various best practices in architecting the right solution with Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/events/248077601/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/events/248077601/"
                             data-a2a-title="All the Cool Kids are Doing it: The Whys and Hows of Architecting a Distributed Caching solution for your use case with Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Moscow-Apache-Ignite-Meetup-events-247608182" class="page-section news-section">
                    <div><h3 style="display:inline-block;">In-Memory Computing Essentials for Architects and Developers - Part 1
                        <a href="/events.html#Moscow-Apache-Ignite-Meetup-events-247608182"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Moscow Apache Ignite Meetup, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">March 13, 2018</span>
                    <p>
                        Denis Magda will talk about the main features and components of In-Memory Computing solutions using the example of Apache Ignite.
                        The webinar combines theory and practice, after which participants will be able to design and write code for similar systems.
                        On specific examples of the code you will learn about:
                    <ul class="page-list">
                        <li>Configuration and launch of clusters</li>
                        <li>Data processing using key-value API</li>
                        <li>Optimal data processing with distributed SQL</li>
                    </ul>
                    <br/>
                    <i>This webinar is in Russian.</i>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Moscow-Apache-Ignite-Meetup/events/247608182/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Moscow-Apache-Ignite-Meetup/events/247608182/"
                             data-a2a-title="In-Memory Computing Essentials for Architects and Developers: Part 1">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="elciotna18-event-DYLq" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT
                        <a href="/events.html#elciotna18-event-DYLq"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">OpenIoTSummit North America, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 12, 2018</span>
                    <p>
                        This session will show attendees how to build a Fast Data solution that will receive endless streams
                        from the IoT side and will be capable of processing the streams in real-time using Apache Ignite's cluster resources.
                        In particular, attendees will learn about data streaming to an Apache Ignite cluster from
                        embedded devices and real-time data processing with Apache Spark.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://elciotna18.sched.com/event/DYLq" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://elciotna18.sched.com/event/DYLq"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Amsterdam-Java-User-Group-events-246975240" class="page-section news-section">
                    <div><h3 style="display:inline-block;">In-Memory Computing Essentials for Java Developers
                        <a href="/events.html#Amsterdam-Java-User-Group-events-246975240"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Amsterdam Java User Group Workshop, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 08, 2018</span>
                    <p>
                        Akmal Chaudhri will introduce to the fundamental capabilities of in-memory computing platforms that
                        boost high-load applications and services, and bring existing IT architecture to the next level by
                        storing and processing a massive amount of data both in RAM and, optionally, on disk.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Amsterdam-Java-User-Group/events/246975240/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Amsterdam-Java-User-Group/events/246975240/"
                             data-a2a-title="In-Memory Computing Essentials for Java Developers">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Amsterdam-Java-User-Group-events-244797561" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Catch an intro to the Java-powered Apache Ignite - memory-centric distributed platform
                        <a href="/events.html#Amsterdam-Java-User-Group-events-244797561"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Amsterdam Java User Group, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 07, 2018</span>
                    <p>
                        In his talk, Akmal will introduce the many components of the open-source Apache Ignite.
                        You will learn how to solve some of the most demanding scalability and performance challenges.
                        Akmal will also cover a few typical use cases and work through some code examples.
                        Hope to see you there so you can leave ready to fire up your database deployments!
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Amsterdam-Java-User-Group/events/244797561/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Amsterdam-Java-User-Group/events/244797561/"
                             data-a2a-title="Catch an intro to the Java-powered Apache Ignite - memory-centric distributed platform">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Amsterdam-Kubernetes-Meetup-events-247989650" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Distributed Database DevOps Dilemmas? Kubernetes to the rescue!
                        <a href="/events.html#Amsterdam-Kubernetes-Meetup-events-247989650"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Amsterdam Kubernetes/Cloud-Native Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 06, 2018</span>
                    <p>
                        Attendees will be introduced to the fundamental capabilities of in-memory computing platforms that
                        boost highly-loaded applications, research projects, risk analysis and fraud detection tasks by
                        storing and processing massive amounts of data in memory and on disk across a cluster of machines.<br/><br/>
                        These capabilities and benefits will be demonstrated with the usage of Apache Ignite which is the
                        in-memory computing platform that is durable, strongly consistent, and highly available with
                        powerful SQL, key-value and processing APIs.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Amsterdam-Kubernetes-Meetup/events/247989650/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Amsterdam-Kubernetes-Meetup/events/247989650/"
                             data-a2a-title="Distributed Database DevOps Dilemmas? Kubernetes to the rescue!">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="BruJUG-events-247929324" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Skyrocket Java applications with the open-source Apache Ignite
                        <a href="/events.html#BruJUG-events-247929324"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">The Brussels Java User Group, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">March 05, 2018</span>
                    <p>
                        In his talk, Akmal will introduce the many components of the open-source Apache Ignite.
                        As Java professionals, you will learn how to solve some of the most demanding scalability and performance challenges.
                        He’ll also cover a few typical use cases and work through some code examples.
                        Attendees would leave ready to fire up their own database deployments!
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/BruJUG/events/247929324/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/BruJUG/events/247929324/"
                             data-a2a-title="Skyrocket Java applications with the open-source Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="webinars-essentials-in-russian-part1" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Basics of In-Memory Computing for architects and developers: Part 1
                        <a href="/events.html#webinars-essentials-in-russian-part1"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">Febuary 28, 2018</span>
                    <p>
                        Denis Magda will talk about the main features and components of In-Memory Computing solutions using the example of Apache Ignite.
                        The webinar combines theory and practice, after which participants will be able to design and write code for similar systems.
                        On specific examples of the code you will learn about:
                        <ul class="page-list">
                            <li>Configuration and launch of clusters</li>
                            <li>Data processing using key-value API</li>
                            <li>Optimal data processing with distributed SQL</li>
                        </ul>
                        <br/>
                        <i>This webinar is in Russian.</i>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/essentials-in-russian-part1" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/essentials-in-russian-part1"
                             data-a2a-title="Basics of In-Memory Computing for architects and developers: Part 1">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Big-Data-Berlin-events-247348848" class="page-section news-section">
                    <div><h3 style="display:inline-block;">The In-Memory Hammer In Your Data Science Toolkit
                        <a href="/events.html#Big-Data-Berlin-events-247348848"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Big Data, Berlin, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">Febuary 22, 2018</span>
                    <p>
                        In this presentation, Akmal will explain some of the main components of Apache Ignite,
                        such as the Compute Grid, Data Grid and the Machine Learning Grid.
                        Through examples, attendees will learn how Apache Ignite can be used for data analysis.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Big-Data-Berlin/events/247348848/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Big-Data-Berlin/events/247348848/"
                             data-a2a-title="The In-Memory Hammer In Your Data Science Toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Bay-Area-In-Memory-Computing-events-247427747" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Building consistent and highly available distributed systems with Apache Ignite and GridGain
                        <a href="/events.html#Bay-Area-In-Memory-Computing-events-247427747"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Bay Area In-Memory Computing Meetup, Speaker - Valentin Kulichenko</span><br/><br/>
                    <span class="news-date">Febuary 21, 2018</span>
                    <p>
                        In this session, meetup attendees will be given an overview of Apache® Ignite™ and GridGain capabilities that allow the delivery of high availability, while not breaking data consistency. Specific guidelines will be presented on how to build such systems covering topics such as:
                        <ul class="page-list">
                            <li>In-memory backups</li>
                            <li>Data persistence</li>
                            <li>Data center replication</li>
                            <li>Full and incremental snapshots</li>
                        </ul>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/247427747/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/247427747/"
                             data-a2a-title="Building consistent and highly available distributed systems with Apache Ignite and GridGain">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Berlin-Kubernetes-Meetup-events-247357559" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Kubernetes: Good, Bad, Ugly of GKE and Distributed Databases in Kubernetes
                        <a href="/events.html#Berlin-Kubernetes-Meetup-events-247357559"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Berlin Kubernetes Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">Febuary 21, 2018</span>
                    <p>
                        In this talk you will learn how Kubernetes can orchestrate distributed database like Apache Ignite, in particular:
                        <ul class="page-list">
                            <li>Cluster Assembling - database nodes auto-discovery in Kubernetes</li>
                            <li>Database Resilience - automated horizontal scalability</li>
                            <li>Database Availability - what’s the role of Kubernetes and the database</li>
                            <li>Utilizing both RAM and disk - set up Apache Ignite in a way to get in-memory performance with durability of disk</li>
                        </ul>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Berlin-Kubernetes-Meetup/events/247357559/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Berlin-Kubernetes-Meetup/events/247357559/"
                             data-a2a-title="Kubernetes: Good, Bad, Ugly of GKE and Distributed Databases in Kubernetes">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="ibm-indexconf-sessions" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT
                        <a href="/events.html#ibm-indexconf-sessions"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Index Developer Conference, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">Febuary 20, 2018</span>
                    <p>
                        It is not enough to build a mesh of sensors or embedded devices to obtain more insights about the
                        surrounding environment and optimize your production systems. Usually, your IoT solution needs
                        to be capable of transferring enormous amounts of data to storage or the cloud where the
                        data have to be processed further.

                        This session will show attendees how to build a Fast Data solution that will receive
                        endless streams from the IoT side and will be capable of processing the streams in
                        real-time using Apache Ignite's cluster resources.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://developer.ibm.com/indexconf/sessions/#!?id=5554" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://developer.ibm.com/indexconf/sessions/#!?id=5554"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="jug-bb-events-247490915" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Skyrocket Java applications with the open-source Apache Ignite
                        <a href="/events.html#jug-bb-events-247490915"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Java Usergroup Berlin-Brandenburg, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">Febuary 20, 2018</span>
                    <p>
                        In his talk, Akmal will introduce the many components of the open-source Apache Ignite.
                        Meetup members, as Java professionals, will learn how to solve some of the most
                        demanding scalability and performance challenges. He’ll also cover a few typical use cases
                        and work through some code examples. Attendees would leave ready to fire up their own database deployments!

                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/jug-bb/events/247490915/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/jug-bb/events/247490915/"
                             data-a2a-title="Skyrocket Java applications with the open-source Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="redis-replaced-why-companies-now-choose-apacher-ignitetm" class="page-section news-section">
                    <div><h3 style="display:inline-block;">GridGain Webinar: Redis Replaced: Why Companies Now Choose Apache® Ignite™ to Improve Application Speed and Scale
                        <a href="/events.html#redis-replaced-why-companies-now-choose-apacher-ignitetm"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">Febuary 20, 2018</span>
                    <p>
                        Learn why businesses are choosing Apache Ignite to handle their in-memory computing needs, and moving away from traditional caches like Redis.
                        In this session, Denis will explain how:
                        <ul class="page-list">
                            <li>In-memory technologies have evolved from caches to in-memory computing platform</li>
                            <li>Apache Ignite slides in-between existing applications and SQL databases to improve performance and scale</li>
                            <li>Apache Ignite native SQL and ACID transaction support works</li>
                            <li>Apache Ignite in-memory storage and collocated computing scales out linearly to avoid scale limitations with traditional caches</li>
                        </ul>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/company/news/events/gridgain-webinar-redis-replaced-why-companies-now-choose-apacher-ignitetm" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/company/news/events/gridgain-webinar-redis-replaced-why-companies-now-choose-apacher-ignitetm"
                             data-a2a-title="GridGain Webinar: Redis Replaced: Why Companies Now Choose Apache® Ignite™ to Improve Application Speed and Scale">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="San-Francisco-Kubernetes-Meetup-events-247330448" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Deploy like a Boss: Using Kubernetes and Apache Ignite!
                        <a href="/events.html#San-Francisco-Kubernetes-Meetup-events-247330448"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">San Francisco Kubernetes Meetup, Speaker - Dani Traphagen</span><br/><br/>
                    <span class="news-date">Febuary 15, 2018</span>
                    <p>
                        If downtime is not an option for you and your application needs to be extremely low-latency;
                        what cocktail of open source projects can facilitate this best? Both Kubernetes and Apache Ignite
                        are Open Source Frameworks that work exceedingly well together to achieve said goals. By working with containerization
                        Kubernetes helps enable developers to work seamlessly with new versions of their applications, running
                        them where they want with a flexibly scalable experience. Apache Ignite is the perfect complement to this.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/San-Francisco-Kubernetes-Meetup/events/247330448/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/San-Francisco-Kubernetes-Meetup/events/247330448/"
                             data-a2a-title="Deploy like a Boss: Using Kubernetes and Apache Ignite! - Dani Traphagen">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="getting-started-apacher-ignitetm-distributed-database" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Getting Started with Apache® Ignite™ as a Distributed Database
                        <a href="/events.html#getting-started-apacher-ignitetm-distributed-database"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Valentin Kulichenko</span><br/><br/>
                    <span class="news-date">Febuary 14, 2018</span>
                    <p>
                        Apache Ignite native persistence is a distributed ACID and SQL-compliant store that turns Apache Ignite into a full-fledged distributed SQL database.
                        In this webinar, Valentin Kulichenko will:
                        <ul class="page-list">
                            <li>Explain what native persistence is, and how it works</li>
                            <li>Show step-by-step how to set up Apache Ignite with native persistence</li>
                            <li>Explain the best practices for configuration and tuning</li>
                        </ul>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/getting-started-apacher-ignitetm-distributed-database" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/getting-started-apacher-ignitetm-distributed-database"
                             data-a2a-title="Getting Started with Apache® Ignite™ as a Distributed Database">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Sydney-Cassandra-Users-events-246922765" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Ignite your Cassandra Love Story: Caching Cassandra with Apache Ignite
                        <a href="/events.html#Sydney-Cassandra-Users-events-246922765"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Sydney Cassandra Users Meetup, Speaker - Rachel Pedreschi</span><br/><br/>
                    <span class="news-date">Febuary 13, 2018</span>
                    <p>
                        In this session you will learn how Apache Ignite can turbocharge your Cassandra cluster without sacrificing availability guarantees.
                        In this talk we’ll cover:
                        <ul class="page-list">
                            <li>An overview of the Apache Ignite architecture</li>
                            <li>How to deploy Apache Ignite in minutes on top of Cassandra</li>
                            <li>How companies use this powerful combination to handle extreme OLTP workloads</li>
                        </ul>
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Sydney-Cassandra-Users/events/246922765/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Sydney-Cassandra-Users/events/246922765/"
                             data-a2a-title="Ignite your Cassandra Love Story: Caching Cassandra with Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="boston-java-events-246725780" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Java and In-Memory Computing: Apache Ignite
                        <a href="/events.html#boston-java-events-246725780"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">The Boston Java Meetup Group, Speaker - Fotios Filacouris</span><br/><br/>
                    <span class="news-date">Febuary 13, 2018</span>
                    <p>
                        In his talk, Akmal will introduce the many components of the open-source Apache Ignite.
                        Meetup members, as Java professionals, will learn how to solve some of the most
                        demanding scalability and performance challenges. He’ll also cover a few typical use cases
                        and work through some code examples. Attendees would leave ready to fire up their own database deployments!

                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/boston-java/events/246725780/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/boston-java/events/246725780/"
                             data-a2a-title="Java and In-Memory Computing: Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="mysqlbos-events-246021720" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Turbocharge your MySQL queries in-memory with Apache Ignite
                        <a href="/events.html#mysqlbos-events-246021720"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">The Boston MySQL Meetup Group, Speaker - Fotios Filacouris</span><br/><br/>
                    <span class="news-date">Febuary 12, 2018</span>
                    <p>
                        Apache Ignite is a unique data management platform that is built on top of a distributed key-value storage
                        and provides full-fledged MySQL support.Attendees will learn how Apache Ignite handles auto-loading of a
                        MySQL schema and data from PostgreSQL, supports MySQL indexes, supports compound indexes, and various
                        forms of MySQL queries including distributed MySQL joins.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/mysqlbos/events/246021720/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/mysqlbos/events/246021720/"
                             data-a2a-title="Turbocharge your MySQL queries in-memory with Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="London-In-Memory-Computing-Meetup-events-246875000" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Building consistent and highly available distributed systems with Apache Ignite and GridGain
                        <a href="/events.html#London-In-Memory-Computing-Meetup-events-246875000"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">London In-Memory Computing Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">Febuary 07, 2018</span>
                    <p>
                        It is well known that there is a tradeoff between data consistency and high availability.
                        However, there are many applications that require very strong consistency guarantees.
                        Making such applications highly available can be a significant challenge. Akmal will explain how to overcome these challenges.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/London-In-Memory-Computing-Meetup/events/246875000/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/London-In-Memory-Computing-Meetup/events/246875000/"
                             data-a2a-title="Building consistent and highly available distributed systems with Apache Ignite and GridGain">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apache-ignite-service-grid-foundation-of-your-microservices-based-solution" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite Service Grid: Foundation of Your Microservices-Based Solution
                        <a href="/events.html#apache-ignite-service-grid-foundation-of-your-microservices-based-solution"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">DeveloperWeek 2018, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">Febuary 07, 2018</span>
                    <p>
                        During this session, Denis will provide a step-by-step guide on how to build a
                        fault-tolerant and scalable microservice-based solution using Apache Ignite's Service Grid and other components to resolve these aforementioned issues.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://developerweeksfbayarea2018.sched.com/event/D6C7/apache-ignite-service-grid-foundation-of-your-microservices-based-solution" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://developerweeksfbayarea2018.sched.com/event/D6C7/apache-ignite-service-grid-foundation-of-your-microservices-based-solution"
                             data-a2a-title="Apache Ignite Service Grid: Foundation of Your Microservices-Based Solution">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="techiteasy-events-245530302" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Meet Apache Ignite In-Memory Computing Platform
                        <a href="/events.html#techiteasy-events-245530302"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Tech it Easy- Tokyo, Speaker - Roman Shtykh</span><br/><br/>
                    <span class="news-date">Febuary 01, 2018</span>
                    <p>
                        In this talk you will learn about Apache Ignite memory-centric distributed database, caching,
                        and processing platform. Roman will explain how one can do distributed computing, and use SQL
                        with horizontal scalability and high availability of NoSQL systems with Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/techiteasy/events/245530302/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/techiteasy/events/245530302/"
                             data-a2a-title="Meet Apache Ignite In-Memory Computing Platform">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Los-Angeles-Kubernetes-Meetup-244966244" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Deploy like a Boss: Using Kubernetes and Apache Ignite!
                        <a href="/events.html#Los-Angeles-Kubernetes-Meetup-244966244"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Los Angeles Kubernetes Meetup, Dani Traphagen</span><br/><br/>
                    <span class="news-date">January 31, 2018</span>
                    <p>
                        If downtime is not an option for you and your application needs to be extremely low-latency;
                        what cocktail of open source projects can facilitate this best? Both Kubernetes and Apache Ignite
                        are Open Source Frameworks that work exceedingly well together to achieve said goals.
                        By working with containerization Kubernetes helps enable developers to work seamlessly with
                        new versions of their applications, running them where they want with a flexibly scalable experience. Apache Ignite is the perfect complement to this.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Los-Angeles-Kubernetes-Meetup/events/244966244/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Los-Angeles-Kubernetes-Meetup/events/244966244/"
                             data-a2a-title="Deploy like a Boss: Using Kubernetes and Apache Ignite!">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="webinar-ignite-fire-in-your-sql-app" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Ignite The Fire In Your SQL App
                        <a href="/events.html#webinar-ignite-fire-in-your-sql-app"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">January 31, 2018</span>
                    <p>
                        Apache Ignite is (an in-memory computing platform OR an in-memory distributed data store and compute grid) with full-fledged SQL,
                        key-value and processing APIs. Many companies have added it as a cache in-between existing SQL databases
                        and their applications to speed up response times and scale. In other projects they've used it as its own SQL database.
                        This session will dive into some of the best practices for both types of projects using Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/ignite-fire-in-your-sql-app" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/ignite-fire-in-your-sql-app"
                             data-a2a-title="Ignite The Fire In Your SQL App">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="BigDataApps-244915185" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT
                        <a href="/events.html#BigDataApps-244915185"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Big Data Application Meetup, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">January 31, 2018</span>
                    <p>
                        This session will show attendees how to build a Fast Data solution that will
                        receive endless streams from the IoT side and will be capable of processing the streams
                        in real-time using Apache Ignite's cluster resources.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/BigDataApps/events/244915185/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/BigDataApps/events/244915185/"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="NYC-In-Memory-Computing-Meetup-246047934" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Building consistent and highly available distributed systems with Apache Ignite and GridGain
                        <a href="/events.html#NYC-In-Memory-Computing-Meetup-246047934"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">NYC In-Memory Computing Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">January 25, 2018</span>
                    <p>
                        It is well known that there is a tradeoff between data consistency and high availability.
                        However, there are many applications that require very strong consistency guarantees,
                        and making such applications highly available can be a significant challenge. In this session,
                        attendees will be given an overview of Apache Ignite and GridGain capabilities
                        that allow the delivery of high availability, while not breaking data consistency.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/events/246047934/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/events/246047934/"
                             data-a2a-title="Building consistent and highly available distributed systems with Apache Ignite and GridGain">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="scale-out-and-conquer-architectural-decisions-behind-distributed-in-memory" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Scale Out and Conquer: Architectural Decisions Behind Distributed In-Memory Systems
                        <a href="/events.html#scale-out-and-conquer-architectural-decisions-behind-distributed-in-memory"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">January 17, 2018</span>
                    <p>
                        Distributed platforms like Apache® Ignite™ rely on a horizontal “scale-out” architecture where you dynamically
                        add more machines to achieve near-linear, elastic scalability. But how does it really work? What are its limits?
                        And how can you optimize performance and scalability?
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/scale-out-and-conquer-architectural-decisions-behind-distributed-in-memory" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/scale-out-and-conquer-architectural-decisions-behind-distributed-in-memory"
                             data-a2a-title="Scale Out and Conquer: Architectural Decisions Behind Distributed In-Memory Systems">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="niketechtalksdec2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Getting Started With Apache Ignite
                        <a href="/events.html#niketechtalksdec2017"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Nike Teck Talks, Speaker - Dani Traphagen</span><br/><br/>
                    <span class="news-date">December 14, 2017</span>
                    <p>
                        Apache Ignite provides a caching layer between applications and the system of record,
                        but additionally, it provides a peer to peer architecture for transacting data, performing computations, microservices, streaming, and much more.<br/><br/>
                        During this session, we will do a deep-dive into the Apache Ignite architecture and discuss
                        how it is being deployed around the globe. You will walk away knowing why and when to use Apache Ignite in your next data intensive application!
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://niketechtalksdec2017.splashthat.com/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://niketechtalksdec2017.splashthat.com/"
                             data-a2a-title="Getting Started With Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Bay-Area-In-Memory-Computing-events-245196260" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Want extreme performance at scale? Do distributed the RIGHT way!
                        <a href="/events.html#Bay-Area-In-Memory-Computing-events-245196260"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Bay Area In-Memory Computing Meetup, Speaker - Valentin Kulichenko</span><br/><br/>
                    <span class="news-date">December 13, 2017</span>
                    <p>
                        During this meetup, Valentin Kulichenko will talk about challenges and
                        pitfalls one may face when architecting and developing a distributed system. Valentin will show how to take advantage
                        of the affinity collocation concept that is one of the most powerful and usually undervalued technique provided by distributed systems.
                        He will take Apache Ignite as a database for his experiments covering these moments in particular:<br/><br/>

                        What is data affinity and why is it important for distributed systems?
                        What is affinity colocation and how does it help to improve performance?
                        How does affinity colocation affects execution of distributed computations and distributed SQL queries? And more...
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/245196260/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/245196260/"
                             data-a2a-title="Want extreme performance at scale? Do distributed the RIGHT way!">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="in-memory-computing-essentials-architects-and-developers-part-2" class="page-section news-section">
                    <div><h3 style="display:inline-block;">In-Memory Computing Essentials for Architects and Developers: Part 2
                        <a href="/events.html#in-memory-computing-essentials-architects-and-developers-part-2"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">December 13, 2017</span>
                    <p>
                        In this webinar, Denis Magda will introduce the fundamental capabilities and components of a distributed,
                        in-memory computing platform. With increasingly advanced coding examples, you’ll learn about:
                    </p>
                    <ul class="page-list">
                        <li>Collocated processing</li>
                        <li>Collocated processing for distributed computations</li>
                        <li>Collocated processing for SQL (distributed joins and more)</li>
                        <li>Distributed persistence usage</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/in-memory-computing-essentials-architects-and-developers-part-2" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/in-memory-computing-essentials-architects-and-developers-part-2"
                             data-a2a-title="In-Memory Computing Essentials for Architects and Developers: Part 2">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Moscow-Apache-Ignite-Meetup-events-245332076" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite Use Cases for Banks and Telecoms
                        <a href="/events.html#Moscow-Apache-Ignite-Meetup-events-245332076"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Moscow Apache Ignite Meetup, Speakers- Mikhail Kuznetzov, Mikhail Khasin, Victor Khoodyakov</span><br/><br/>
                    <span class="news-date">December 12, 2017</span>
                    <p>
                        Welcome to the inaugural gathering of the Moscow Apache® Ignite™ Meetup! Our guest experts -  Mikhail Kuznetzov, Mikhail Khasin, and Victor Khoodyakov will talk about their experiences implementing solutions for a large bank as well as a telecom company, based on Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Moscow-Apache-Ignite-Meetup/events/245332076/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Moscow-Apache-Ignite-Meetup/events/245332076/"
                             data-a2a-title="Apache Ignite Use Cases for Banks and Telecoms">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="kccncna17-event-D3vE" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Distributed Database DevOps Dilemmas? Kubernetes to the Rescue
                        <a href="/events.html#kccncna17-event-D3vE"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">KubeCon + CloudNativeCon North America 2017, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">December 08, 2017</span>
                    <p>
                        Distributed databases can make so many things easier for a developer... but not always for DevOps.
                        OK, almost never for DevOps.  Kubernetes has come to the rescue with an easy application orchestration!<br/><br/>
                        In this talk you will learn how Kubernetes can orchestrate distributed database like Apache Ignite, in particular:
                    </p>
                    <ul class="page-list">
                        <li>Cluster Assembling - database nodes auto-discovery in Kubernetes.</li>
                        <li>Database Resilience - automated horizontal scalability.</li>
                        <li>Database Availability - what’s the role of Kubernetes and the database.</li>
                        <li>Utilizing both RAM and disk - set up Apache Ignite in a way to get in-memory performance with durability of disk.</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://kccncna17.sched.com/event/D3vE" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://kccncna17.sched.com/event/D3vE"
                             data-a2a-title="Distributed Database DevOps Dilemmas? Kubernetes to the Rescue">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="austin-data-meetup-events-245472777" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite: the in-memory hammer in your data science toolkit
                        <a href="/events.html#austin-data-meetup-events-245472777"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Austin Data Meetup, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">December 07, 2017</span>
                    <p>
                        Machine learning is a method of data analysis that automates the building of analytical models.
                        By using algorithms that iteratively learn from data, computers are able to find hidden insights
                        without the help of explicit programming. These insights bring tremendous benefits into many different domains.
                        For business users, in particular, these insights help organizations improve customer experience,
                        become more competitive, and respond much faster to opportunities or threats. The availability of very
                        powerful in-memory computing platforms, such as the open-source Apache Ignite (https://ignite.apache.org/),
                        means that more organizations can benefit from machine learning today.<br/><br/>

                        In this presentation, Denis will look at some of the main components of Apache Ignite, such as a
                        distributed database, distributed computations, and machine learning toolkit. Through examples,
                        attendees will learn how Apache Ignite can be used for data analysis.

                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/austindata/events/245472777/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/austindata/events/245472777/"
                             data-a2a-title="Apache Ignite: the in-memory hammer in your data science toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="meeting-challenges-fast-data-in-healthcare-in-memory-technologies" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Meeting the Challenges of Fast Data in Healthcare with In-Memory Technologies
                        <a href="/events.html#meeting-challenges-fast-data-in-healthcare-in-memory-technologies"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">December 06, 2017</span>
                    <p>
                        In this webinar, Akmal Chaudhri will discuss the requirements for fast data in healthcare and specifically
                        how Apache Ignite, a distributed in-memory computing platform, is used by drug discovery companies to identify potential therapies for complex diseases.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/meeting-challenges-fast-data-in-healthcare-in-memory-technologies" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/meeting-challenges-fast-data-in-healthcare-in-memory-technologies"
                             data-a2a-title="Meeting the Challenges of Fast Data in Healthcare with In-Memory Technologies">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="implementing-durable-memory-centric-architectures-in-large-financial" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Implementing Durable Memory-Centric Architectures in Large Financial <br/>Institutions
                        <a href="/events.html#implementing-durable-memory-centric-architectures-in-large-financial"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Dmitriy Setrakyan</span><br/><br/>
                    <span class="news-date">November 29, 2017</span>
                    <p>
                        In this 1-hour webinar, GridGain Systems Chief Product Officer Dmitriy Setrakyan will present
                        how distributed memory-centric architectures can be applied to various financial systems.<br/><br/>
                        Dmitriy will first go over some Apache® Ignite™ features important for financial use cases, including ACID compliance,
                        SQL compatibility, persistence, replication, security, fault tolerance and more. He will next analyze one of the largest
                        Apache Ignite deployments in the world at Sberbank, a Russian and eastern European bank. He’ll walk through its overall
                        architecture and demonstrate the 5 major challenges that Sberbank ran into when integrating distributed,
                        horizontally scalable memory-centric database at their bank.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/implementing-durable-memory-centric-architectures-in-large-financial" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/implementing-durable-memory-centric-architectures-in-large-financial"
                             data-a2a-title="Implementing Durable Memory-Centric Architectures in Large Financial Institutions">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="in-memory-computing-essentials-architects-and-developers-part-1" class="page-section news-section">
                    <div><h3 style="display:inline-block;">In-Memory Computing Essentials for Architects and Developers: Part 1
                        <a href="/events.html#in-memory-computing-essentials-architects-and-developers-part-1"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">November 21, 2017</span>
                    <p>
                        In this webinar, Denis Magda will introduce the fundamental capabilities and components of an in-memory computing platform, and
                        demonstrate how to apply the theory in practice. With increasingly advanced coding examples, you’ll learn about:
                    </p>
                    <ul class="page-list">
                        <li>Cluster configuration and deployment</li>
                        <li>Data processing with key-value APIs</li>
                        <li>Data processing with SQL</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/in-memory-computing-essentials-architects-and-developers-part-1" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/in-memory-computing-essentials-architects-and-developers-part-1"
                             data-a2a-title="In-Memory Computing Essentials for Architects and Developers: Part 1">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="datariders-events-243704486" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Hands-on Workshop: In-Memory Computing Essentials for Java Developers
                        <a href="/events.html#datariders-events-243704486"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Big Data and Cloud Meetup, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">November 16, 2017</span>
                    <p>
                        Attendees will be introduced to the fundamental capabilities of in-memory computing platforms that boost
                        high-load applications and services, and bring existing IT architecture to the next level by storing
                        and processing a massive amount of data both in RAM and, optionally, on disk.<br/><br/>
                        The capabilities and benefits of such platforms will be demonstrated with the usage of Apache Ignite,
                        which is the in-memory computing platform that is durable, strongly consistent, and highly available with powerful SQL, key-value and processing APIs.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/preview/datariders/events/243704486" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/preview/datariders/events/243704486"
                             data-a2a-title="Hands-on Workshop: In-Memory Computing Essentials for Java Developers">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="devoxx-Apache_Spark_and_Apache_Ignite:_Where_Fast_Data_Meets_the_IoT" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT
                        <a href="/events.html#devoxx-Apache_Spark_and_Apache_Ignite:_Where_Fast_Data_Meets_the_IoT"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Devoxx Morocco, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">November 16, 2017</span>
                    <p>
                        It is not enough to build a mesh of sensors or embedded devices to obtain more insights about the surrounding environment and
                        optimize your production systems. Usually, your IoT solution needs to be capable of transferring enormous amounts of data to
                        storage or the cloud where the data have to be processed further. Quite often, the processing of the endless streams of data has
                        to be done in real-time so that you can react on the IoT subsystem's state accordingly.<br/><br/>
                        This session will show attendees how to build a Fast Data solution that will receive endless streams from the
                        IoT side and will be capable of processing the streams in real-time using Apache Ignite's cluster resources. In particular, attendees will learn
                        about data streaming to an Apache Ignite cluster from embedded devices and real-time data processing with Apache Spark.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://cfp.devoxx.ma/2017/talk/RYX-3007/Apache_Spark_and_Apache_Ignite:_Where_Fast_Data_Meets_the_IoT" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://cfp.devoxx.ma/2017/talk/RYX-3007/Apache_Spark_and_Apache_Ignite:_Where_Fast_Data_Meets_the_IoT"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="devoxx-How_to_build_an_event-driven_dynamically_re-configurable_micro-services_platform" class="page-section news-section">
                    <div><h3 style="display:inline-block;">How to build an event-driven, dynamically re-configurable micro-services platform
                        <a href="/events.html#How_to_build_an_event-driven_dynamically_re-configurable_micro-services_platform"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Devoxx Belgium, Speaker - Sven Beauprez</span><br/><br/>
                    <span class="news-date">November 10, 2017</span>
                    <p>
                        Why only look at Apache Kafka to build event-driven microservices when there is also Apache Ignite, which brings far more to the table?
                    </p>
                    <p>
                        In this presentation, Sven will show you how to combine Apache Ignite with Docker to not only build an event-driven microservice platform but also to make this dynamically re-configurable without any downtime at all.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://cfp.devoxx.be/2017/talk/YPK-6082/How_to_build_an_event-driven_dynamically_re-configurable_micro-services_platform" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://cfp.devoxx.be/2017/talk/YPK-6082/How_to_build_an_event-driven_dynamically_re-configurable_micro-services_platform"
                             data-a2a-title="How to build an event-driven, dynamically re-configurable micro-services platform">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="odsc-apache-ignite-memory-hammer-data-science-toolkit-2" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite: The In-Memory Hammer In Your Data Science Toolkit&nbsp;
                        <a href="/events.html#odsc-apache-ignite-memory-hammer-data-science-toolkit-2"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">ODSC San Francisco, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">November 3, 2017</span>
                    <p>
                        Machine learning is a method of data analysis that automates the building of analytical models.
                        By using algorithms that iteratively learn from data, computers are able to find hidden insights without
                        the help of explicit programming. These insights bring tremendous benefits into many different domains.
                        For business users, in particular, these insights help organizations improve customer experience, become more competitive,
                        and respond much faster to opportunities or threats. The availability of very powerful in-memory computing platforms,
                        such as Apache Ignite, means that more organizations can benefit from machine learning today.<br/><br/>
                        In this presentation Denis will look at some of the main components of Apache Ignite, such as the Compute Grid,
                        Data Grid and the Machine Learning Grid. Through examples, attendees will learn how Apache Ignite can be used for data analysis.
                    </p>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://odsc.com/training/portfolio/apache-ignite-memory-hammer-data-science-toolkit-2" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://odsc.com/training/portfolio/apache-ignite-memory-hammer-data-science-toolkit-2"
                             data-a2a-title="Apache Ignite: The In-Memory Hammer In Your Data Science Toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="sydney-ibm-bluemix-meetup-group" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Fast Data meets Big Data in the IoT- Using Apache Ignite&nbsp;
                        <a href="/events.html#sydney-ibm-bluemix-meetup-group"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Sydney IBM Bluemix Meetup Group, Speaker - Rachel Pedreschi</span><br/><br/>
                    <span class="news-date">November 2, 2017</span>
                    <p>
                        So, you've built yourself a killer IoT application. You have connected all the things and they are all happily sending
                        over their packets of data faster than you can say "Big Blue". Now what? How do you architect a server architecture
                        that can support all the data flowing in and also be able to grow for the future?<br/><br/>
                        In this talk, Rachel will cover some of the architectural decisions you need to consider when choosing a data platform and discuss
                        how Apache Ignite can meet those requirements. Rachel will also cover other design options like NoSQL and Spark and how to deploy in the IBM cloud.
                    </p>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/company/news/events/sydney-ibm-bluemix-meetup-group" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/company/news/events/sydney-ibm-bluemix-meetup-group"
                             data-a2a-title="Fast Data meets Big Data in the IoT- Using Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Bay-Area-In-Memory-Computing-243868747" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Achieving High Availability and Consistency With Distributed Systems&nbsp;
                        <a href="/events.html#Bay-Area-In-Memory-Computing-243868747"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Bay Area Apache® Ignite™ Meetup, Speakers - Denis Magda, Valetin Kulichenko</span><br/><br/>
                    <span class="news-date">November 2, 2017</span>
                    <p>
                        Tech talk No. 1 - Val kicks off the learning with a session titled, "Building Consistent and Highly Available Distributed Systems with Apache Ignite and GridGain."
                    </p>

                    <p>
                        Tech talk No. 2 - Denis continues the knowledge sharing with a session titled, "Harnessing the 21st Century with a Distributed Memory-Centric SQL."
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/243868747/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/243868747/"
                             data-a2a-title="Achieving High Availability and Consistency With Distributed Systems">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Dublin-Spark-Meetup-events-243875410" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT&nbsp;
                        <a href="/events.html#Dublin-Spark-Meetup-events-243875410"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Dublin Spark Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 26, 2017</span>
                    <p>
                        In this session, Akmal  will show attendees how to build a Fast Data solution that will receive endless streams from the
                        IoT side and will be capable of processing the streams in real-time using Apache Ignite's cluster resources. In particular,
                        attendees will learn about data streaming to an Apache Ignite cluster from embedded devices and real-time data processing with Apache Spark.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Dublin-Spark-Meetup/events/243875410/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Dublin-Spark-Meetup/events/243875410/"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="spark-summit-eu-2017-how-to-share-state" class="page-section news-section">
                    <div><h3 style="display:inline-block;">How to Share State Across Multiple Spark Jobs using Apache® Ignite™&nbsp;
                        <a href="/events.html#spark-summit-eu-2017-how-to-share-state"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Spark Summit Europe 2017, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 25, 2017</span>
                    <p>
                        Attend this session to learn how to easily share state in-memory across multiple Spark jobs, either
                        within the same application or between different Spark applications using an implementation of the Spark RDD
                        abstraction provided in Apache Ignite. During the talk, attendees will learn in detail how IgniteRDD –
                        an implementation of native Spark RDD and DataFrame APIs – shares the state of the RDD across other Spark jobs,
                        applications and workers. Examples will show how IgniteRDD, with its advanced in-memory indexing capabilities,
                        allows execution of SQL queries many times faster than native Spark RDDs or Data Frames.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://spark-summit.org/eu-2017/events/how-to-share-state-across-multiple-apache-spark-jobs-using-apache-ignite/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://spark-summit.org/eu-2017/events/how-to-share-state-across-multiple-apache-spark-jobs-using-apache-ignite/"
                             data-a2a-title="How to Share State Across Multiple Spark Jobs using Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="imc-summit-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">The In-Memory Computing Summit 2017 – North America&nbsp;
                        <a href="/events.html#imc-summit-2017"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">South San Francisco Conference Center</span><br/><br/>
                    <span class="news-date">October 24-25, 2017</span>
                    <p>
                        There will be several highly technical talks about Apache Ignite at the 3rd-annual  In-Memory Computing Summit
                        Oct. 24-25 at the South San Francisco Conference Center. The IMC Summit is the only industry-wide event that focuses
                        on the full range of in-memory computing-related technologies and solutions held in North America.
                    </p>
                    <p>Check out the agenda here: <a href="https://www.imcsummit.org/us/agenda/schedule/day-1">https://www.imcsummit.org/us/agenda/schedule/day-1</a></p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.imcsummit.org/us/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.imcsummit.org/us/"
                             data-a2a-title="The In-Memory Computing Summit 2017 – North America">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Eurostaff-Big-Data-243650721" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Better Machine Learning with Apache® Ignite™&nbsp;
                        <a href="/events.html#Eurostaff-Big-Data-243650721"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Eurostaff Big Data Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 19, 2017</span>
                    <p>
                        The availability of very powerful in-memory computing platforms, such as Apache® Ignite™, means that more organizations can benefit
                        from machine learning today. In this presentation, Akmal will discuss how the Compute Grid, Data Grid, and Machine Learning Grid
                        components of Apache Ignite work together to enable your business to start reaping the benefits of machine learning.
                    </p>
                    <p>
                        Through examples, attendees will learn how Apache Ignite can be used for data analysis and be the in-memory hammer in your machine learning toolkit.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Eurostaff-Big-Data/events/243650721/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Eurostaff-Big-Data/events/243650721/"
                             data-a2a-title="Better Machine Learning with Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="sv-jug-events-242946746" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Catch an intro to Apache Ignite and skyrocket Java applications&nbsp;
                        <a href="/events.html#sv-jug-events-242946746"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Java User Group Meetup, Speaker - Valentin Kulichenko</span><br/><br/>
                    <span class="news-date">October 18, 2017</span>
                    <p>
                        Join Valentin (Val) Kulichenko as he introduces the many components of the open-source Apache Ignite.
                        You, as a Java professional, will learn how to solve some of the most demanding scalability and performance challenges.
                        He will also cover a few typical use cases and work through some code examples.
                        Hope to see you there so you can leave ready to fire up your database deployments!
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/preview/sv-jug/events/242946746" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/preview/sv-jug/events/242946746"
                             data-a2a-title="Catch an intro to Apache Ignite and skyrocket Java applications">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacher-sparktm-and-apacher-ignitetm-where-fast-data-meets-iot" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache® Spark™ and Apache® Ignite™: Where Fast Data Meets the IoT&nbsp;
                        <a href="/events.html#apacher-sparktm-and-apacher-ignitetm-where-fast-data-meets-iot"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">October 18, 2017</span>
                    <p>
                        During this 1-hour webinar, Denis Magda will discuss a Fast Data solution that can receive endless streams
                        from the Internet of Things (IoT) and be capable of processing the streams in real-time using Apache Ignite’s cluster resources.
                        You will also learn about data streaming to an Apache Ignite cluster from embedded devices and real-time data processing with Apache® Spark™.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/apacher-sparktm-and-apacher-ignitetm-where-fast-data-meets-iot" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/apacher-sparktm-and-apacher-ignitetm-where-fast-data-meets-iot"
                             data-a2a-title="Apache® Spark™ and Apache® Ignite™: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="odsc-europe-2017-apache-ignite-memory-hammer-data-science-toolkit" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite™: The In-Memory Hammer in Your Data Science Toolkit&nbsp;
                        <a href="/events.html#odsc-europe-2017-apache-ignite-memory-hammer-data-science-toolkit"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">ODSC Europe 2017, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 14, 2017</span>
                    <p>
                        In this presentation, Akmal will show some of the main components of Apache Ignite™,
                        such as the Compute Grid, Data Grid and the Machine Learning Grid. Through examples,
                        attendees will learn how Apache Ignite can be used for data analysis.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://odsc.com/training/portfolio/apache-ignite-memory-hammer-data-science-toolkit" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://odsc.com/training/portfolio/apache-ignite-memory-hammer-data-science-toolkit"
                             data-a2a-title="Apache Ignite™: The In-Memory Hammer in Your Data Science Toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="london-bigdataweek-powering-banks-financial-institutions-distributed-systems" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Powering up banks and financial institutions with distributed systems&nbsp;
                        <a href="/events.html#london-bigdataweek-powering-banks-financial-institutions-distributed-systems"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Big Data Week London 2017, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 13, 2017</span>
                    <p>
                        In this presentation, attendees will learn about important Apache Ignite features for financial applications,
                        such as ACID compliance, SQL compatibility, persistence, replication, security, fault tolerance and more.
                    </p>
                    <p>
                        A customer case study will also be presented. We will analyze one of the largest Apache Ignite deployments in the world at Sberbank,
                        a Russian and Eastern European Bank, by walking through the overall architecture and demonstrating various implementation and deployment challenges.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="http://london.bigdataweek.com/session/powering-banks-financial-institutions-distributed-systems/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="http://london.bigdataweek.com/session/powering-banks-financial-institutions-distributed-systems/"
                             data-a2a-title="Powering up banks and financial institutions with distributed systems">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="dataplatform-jp" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Real-time Data Analysis with Apache Ignite High-Performance In-memory Platform&nbsp;
                        <a href="/events.html#dataplatform-jp"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Data Platform Conference Tokyo 2017, Speaker - Roman Shtykh</span><br/><br/>
                    <span class="news-date">October 10, 2017</span>
                    <p>
                        With the advances in IoT technology, the volume and the diversity of data to be analyzed has enormously increased,
                        and processing it with traditional disk-based technology has become more challenging. Therefore the number of data
                        analysis solutions using in-memory technology, such as Apache Ignite high-performance in-memory platform, has increased.
                    </p>
                    <p>
                        In this session, Roman will introduce Apache Ignite, and explain how it can be used for real-time analysis of large volumes of IoT data.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="http://dataplatform.jp/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="http://dataplatform.jp/"
                             data-a2a-title="Real-time Data Analysis with Apache Ignite High-Performance In-memory Platform">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="webinar-postgres-apacher-ignitetm" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Postgres with Apache® Ignite™: Faster Transactions and Analytics&nbsp;
                        <a href="/events.html#webinar-postgres-apacher-ignitetm"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Fotios Filacouris</span><br/><br/>
                    <span class="news-date">October 4, 2017</span>
                    <p>
                        Join Fotios Filacouris as he discusses how you can supplement PostgreSQL with Apache Ignite. You'll learn:
                    </p>
                    <ul class="page-list">
                        <li>The strategic benefits of using Apache Ignite instead of Memcache, Redis®, GigaSpaces®, or Oracle Coherence™</li>
                        <li>How to overcome the limitations of the PostgreSQL architecture for big data analytics by leveraging the parallel distributed computing and ANSI SQL-99 capabilities of Apache Ignite</li>
                        <li>How to use Apache Ignite as an advanced high-performance cache platform for hot data</li>
                    </ul>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/postgres-apacher-ignitetm-faster-transactions-and-analytics" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/postgres-apacher-ignitetm-faster-transactions-and-analytics"
                             data-a2a-title="Postgres with Apache® Ignite™: Faster Transactions and Analytics">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Paris-Spark-Meetup-243673170" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT&nbsp;
                        <a href="/events.html#Paris-Spark-Meetup-243673170"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Paris Spark Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 3, 2017</span>
                    <p>
                        In this session, Akmal  will show attendees how to build a Fast Data solution that will receive endless streams from the
                        IoT side and will be capable of processing the streams in real-time using Apache Ignite's cluster resources. In particular,
                        attendees will learn about data streaming to an Apache Ignite cluster from embedded devices and real-time data processing with Apache Spark.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Paris-Spark-Meetup/events/243673170/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Paris-Spark-Meetup/events/243673170/"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Big-Data-Developers-in-Paris-243327509" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Giving a boost to the Hadoop and Spark ecosystems with in-memory technologies&nbsp;
                        <a href="/events.html#Big-Data-Developers-in-Paris-243327509"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Big Data & Data Science, Paris, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">October 2, 2017</span>
                    <p>
                        In this talk, Akmal present how to speed up existing Hadoop and Spark deployments by making Apache Ignite responsible for RAM utilization.
                        No code modifications, no new architecture from scratch! Specifically, this presentation will cover :
                        Hadoop Accelerator, HDFS compliant In-Memory File System, MapReduce Accelerator, Spark Shared RDDs, Spark SQL boost.

                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/preview/Big-Data-Developers-in-Paris/events/243327509" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/preview/Big-Data-Developers-in-Paris/events/243327509"
                             data-a2a-title="Giving a boost to the Hadoop and Spark ecosystems with in-memory technologies">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="New-York-Kubernetes-Meetup-242597746" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Stateful Apps in Production and Distributed Database Orchestration&nbsp;
                        <a href="/events.html#New-York-Kubernetes-Meetup-242597746"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">New York Kubernetes Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">September 27, 2017</span>
                    <p>
                        This talk will focus on a DevOps perspective on the orchestration of distributed databases, Apache Ignite.
                        Denis will speak on node auto-discovery, automated horizontal scalability, availability and utilization of RAM and disk with Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/New-York-Kubernetes-Meetup/events/242597746/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/New-York-Kubernetes-Meetup/events/242597746/"
                             data-a2a-title="Stateful Apps in Production and Distributed Database Orchestration">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="better-machine-learning-apacher-ignitetm" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Better Machine Learning with Apache® Ignite™&nbsp;
                        <a href="/events.html#better-machine-learning-apacher-ignitetm"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">September 27, 2017</span>
                    <p>
                        In this presentation, Akmal will discuss how the Compute Grid, Data Grid, and Machine Learning Grid components of Apache Ignite work together
                        to enable your business to start reaping the benefits of machine learning. Through examples, attendees will learn how Apache Ignite
                        can be used for data analysis and be the in-memory hammer in your machine learning toolkit.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/better-machine-learning-apacher-ignitetm" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/better-machine-learning-apacher-ignitetm"
                             data-a2a-title="Better Machine Learning with Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="NYC-In-Memory-Computing-Meetup-243150945" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Powering up banks and financial institutions with distributed systems&nbsp;
                        <a href="/events.html#NYC-In-Memory-Computing-Meetup-243150945"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">NYC In-Memory Computing Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">September 26, 2017</span>
                    <p>
                        In this talk, Akmal will start with a brief high-level overview of distributed computing fundamentals and in-memory computing use cases.
                        Then he'll introduce the open-source Apache Ignite, an in-memory computing platform that enables high-performance transactions,
                        real-time streaming, and fast analytics in a single, comprehensive data access and processing layer.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/events/243150945/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/events/243150945/"
                             data-a2a-title="Powering up banks and financial institutions with distributed systems">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="internet-things-iot-new-york-meetup" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT&nbsp;
                        <a href="/events.html#NYC-In-Memory-Computing-Meetup-243150945"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Internet of Things (IoT) New York Meetup, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">September 25, 2017</span>
                    <p>
                        Quite often, the processing of the endless streams of data has to be done in real-time so that you can react on the IoT subsystem's state accordingly.
                        In this session, Akmal will show attendees how to build a Fast Data solution that will receive endless streams from the IoT
                        side and will be capable of processing the streams in real-time using Apache Ignite's cluster resources.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/company/news/events/internet-things-iot-new-york-meetup" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/company/news/events/internet-things-iot-new-york-meetup"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="SF-Spark-and-Friends-242935496" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark, Apache Flink, and Apache Ignite: Where Fast Data Meets the IoT&nbsp;
                        <a href="/events.html#SF-Spark-and-Friends-242935496"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Meetup, San Francisco, CA, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">September 20, 2017</span>
                    <p>
                        This session will show attendees how to build a Fast Data solution that will receive endless streams from the IoT side and
                        will be capable of processing the streams in real-time using Apache Ignite's cluster resources.
                    </p>
                    <p>
                        In particular, attendees will learn about data streaming to an Apache Ignite cluster from embedded
                        devices and real-time data processing with Apache Flink.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/SF-Spark-and-Friends/events/242935496/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/SF-Spark-and-Friends/events/242935496/"
                             data-a2a-title="Apache Spark, Apache Flink, and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Cambridge-NET-User-Group-238837204" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Business Intelligence and Apache Ignite for .NET Users&nbsp;
                        <a href="/events.html#Cambridge-NET-User-Group-238837204"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Meetup, Cambridge .NET User Group, Speaker - Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">September 18, 2017</span>
                    <p>
                        This presentation will provide a deep dive into .NET features of the top level Apache projects: Apache Ignite.
                        Apache Ignite is the memory-centric platform that combines distributed SQL database and key-value data grid,
                        that is ACID compliant, horizontally scalable and highly available, and empowered with compute and machine learning capabilities.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Cambridge-NET-User-Group/events/238837204/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Cambridge-NET-User-Group/events/238837204/"
                             data-a2a-title="Business Intelligence and Apache Ignite for .NET Users">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="SF-Big-Analytics-242368299" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite: The in-memory hammer in your data science toolkit&nbsp;
                        <a href="/events.html#SF-Big-Analytics-242368299"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Meetup, Mountain View, CA, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">September 13, 2017</span>
                    <p>
                        In this talk, Denis will go through some of the main components of Apache Ignite, such as the Compute Grid, Data Grid and the Machine Learning Grid.
                        Through examples, attendees will learn how Apache Ignite can be used for big data analysis.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/SF-Big-Analytics/events/242368299/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/SF-Big-Analytics/events/242368299/"
                             data-a2a-title="Apache Ignite: The in-memory hammer in your data science toolkit">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="webinar-5573556767611108099" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Implementing In-Memory Computing for Financial Services Use Cases with Apache® Ignite™&nbsp;
                        <a href="/events.html#SF-Big-Analytics-242368299"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">September 12, 2017</span>
                    <p>
                        In this presentation,  Denis will explain features of the Apache Ignite distributed computing platform that are important for financial use cases, including:
                    </p>
                    <ul class="page-list">
                        <li>ACID transaction guarantees</li>
                        <li>Distributed ANSI-99 SQL support</li>
                        <li>Replication</li>
                        <li>Security</li>
                        <li>Fault tolerance</li>
                        <li>Persistence</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://register.gotowebinar.com/register/5573556767611108099" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://register.gotowebinar.com/register/5573556767611108099"
                             data-a2a-title="Implementing In-Memory Computing for Financial Services Use Cases with Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="big-data-and-cloud-meetup-santa-clara-242523245" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Spark and Apache Ignite: Where Fast Data Meets the IoT&nbsp;
                        <a href="/events.html#big-data-and-cloud-meetup-santa-clara-242523245"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Meetup, Santa Clara, CA, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">September 09, 2017</span>
                    <p>
                        In his talk, Denis will will show attendees how to build a sast Data solution that will receive endless streams from
                        the IoT side and will be capable of processing the streams in real-time using the cluster resources of Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/datariders/events/242523245/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/datariders/events/242523245/"
                             data-a2a-title="Apache Spark and Apache Ignite: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="deploy-boss-using-kubernetesr-and-apacher-ignitetm" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Deploy like a Boss: Using Kubernetes® and Apache® Ignite™&nbsp;
                        <a href="/events.html#deploy-boss-using-kubernetesr-and-apacher-ignitetm"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Dani Traphagen</span><br/><br/>
                    <span class="news-date">August 23, 2017</span>
                    <p>
                        If downtime is not an option for you, and your application needs to be extremely low-latency, Kubernetes® and Apache® Ignite™ are open source frameworks that work exceedingly well together to achieve these goals.
                    </p>
                    <p>
                        In this webinar, Dani Traphagen will walk through the basics of a Kubernetes and Apache Ignite deployment, including:
                    </p>
                    <ul class="page-list">
                        <li>Setting up a Apache Ignite cluster</li>
                        <li>Using the Kubernetes IP Finder and the Kubernetes Ignite Lookup Service</li>
                        <li>Sharing the Ignite Cluster Configuration</li>
                        <li>Deploying your Ignite Pods</li>
                        <li>Adjusting the Ignite Cluster Size when you need to scale</li>
                    </ul>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="http://info.gridgain.com/r40u0R2G0WUmSWT9S00K030" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="http://info.gridgain.com/r40u0R2G0WUmSWT9S00K030"
                             data-a2a-title="Deploy like a Boss: Using Kubernetes® and Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="big-community-webinar-2423316315303466241" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Introduction to Apache Ignite, a memory-centric distributed platform&nbsp;
                        <a href="/events.html#big-community-webinar-2423316315303466241"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">August 16, 2017</span>
                    <p>
                        Apache Ignite is an open source memory-centric platform that combines a distributed SQL database with a Key-Value Data Grid that
                        is ACID-compliant and horizontally scalable. It enables high-performance transactions, real-time streaming, and fast analytics
                        in a single, comprehensive data access and processing layer.
                    </p>
                    <p>
                        In this webinar, attendees will learn about the many components of Apache  Ignite, including the Data Grid, Compute Grid,
                        distributed SQL database and the Machine Learning Grid. We will also cover a few typical use cases and work through some Java code examples.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://register.gotowebinar.com/register/2423316315303466241" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://register.gotowebinar.com/register/2423316315303466241"
                             data-a2a-title="Introduction to Apache Ignite, a memory-centric distributed platform">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="building-consistent-and-highly-available-distributed-systems" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Building Consistent and Highly Available Distributed Systems with Apache® Ignite™&nbsp;
                        <a href="/events.html#building-consistent-and-highly-available-distributed-systems"><i class="fa fa-anchor"></i></a>
                    </h3></div>
                    <span class="news-date">Webinar, Valentin Kulichenko</span><br/><br/>
                    <span class="news-date">August 02, 2017</span>
                    <p>
                        In this session, Valentin Kulichenko, Apache Ignite Committer and PMC, will give an overview of some of Apache® Ignite™
                        capabilities that allow the delivery as much availability as possible, while not breaking data consistency.
                        Valentin will give specific guidelines on how to build such systems, and will do a deep dive into topics like:
                    </p>
                    <ul class="page-list">
                        <li>In-memory backups</li>
                        <li>Data persistence</li>
                        <li>Data center replication</li>
                        <li>Full and incremental snapshots</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/building-consistent-and-highly-available-distributed-systems-apacher-ignitetm" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">

                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/building-consistent-and-highly-available-distributed-systems-apacher-ignitetm"
                             data-a2a-title="Building Consistent and Highly Available Distributed Systems with Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="Bay-Area-In-Memory-Computing-241381155" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Diving into the internals of Apache Ignite's memory architecture&nbsp;<a href="/events.html#Bay-Area-In-Memory-Computing-241381155"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Meetup, Denis Magda</span><br/><br/>
                    <span class="news-date">Jul 27, 2017</span>
                    <p>
                        Apache Ignite is one of the fastest growing Apache projects. The presentation will take the audience on a
                        roadmap discovery of Ignite moving to a memory-centric storage model, supporting both, fast in-memory and durable on-disk data,
                        and blending a distributed SQL database with an in-memory key-value data grid.
                    </p>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/241381155/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Bay-Area-In-Memory-Computing/events/241381155/"
                             data-a2a-title="Diving into the internals of Apache Ignite's memory architecture">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="Brighton-Java-241395191" class="page-section news-section">
                    <div><h3 style="display:inline-block;">An Intro to Apache Ignite, the Memory-centric Distributed Platform&nbsp;<a href="/events.html#Brighton-Java-241395191"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Meetup, Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">July 26, 2017</span>
                    <p>
                        Join Akmal Chaudhri as he introduces the many components of the open-source Apache Ignite.
                        You, as a Java professional, will learn how to solve some of the most demanding scalability and performance challenges.
                        He will also cover a few typical use cases and work through some code examples.
                    </p>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Brighton-Java/events/241395191/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Brighton-Java/events/241395191/"
                             data-a2a-title="An Intro to Apache Ignite, the Memory-centric Distributed Platform">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="distributed-acid-transactions-apache-ignite" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Distributed ACID Transactions in Apache Ignite&nbsp;<a href="/events.html#"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Akmal Chaudhri</span><br/><br/>
                    <span class="news-date">July 19, 2017</span>
                    <p>
                        During this session, Akmal Chaudhri will do a deep-dive on the architecture of
                        Apache Ignite's ACID-compliant transactional subsystem, elaborating on the following:
                    </p>
                    <ul class="page-list">
                        <li>Data consistency: one-phase and two-phase commit implementations.</li>
                        <li>Fault-tolerance: recovery protocol for running transactions.</li>
                        <li>Optimistic and Pessimistic transactions.</li>
                        <li>Deadlock-free transactions</li>
                        <li>Deadlock detection mechanism</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/distributed-acid-transactions-apache-ignite" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/distributed-acid-transactions-apache-ignite"
                             data-a2a-title="Distributed ACID Transactions in Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="SQL-queries-meetup-amsterdam" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Turbocharge your SQL queries in-memory with Apache® Ignite™&nbsp;<a href="/events.html#SQL-queries-meetup-amsterdam"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Meetup, Amsterdam, Netherlands, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">June 20, 2017 @6:30pm</span>
                    <p>
                        During this session, Denis will explain how Apache Ignite handles auto-loading of SQL schema and data from MySQL,
                        supports SQL indexes, compound indexes support, and various forms of SQL queries including distributed SQL joins.
                        He will demostrate how to:
                    </p>
                    <ul class="page-list">
                        <li>Import SQL schema from MySQL and preserve the data sets stored in MySQL and Apache Ignite in sync.</li>
                        <li>Connect to Apache Ignite from your favourite tool or application language using ODBC or JDBC driver and start
                            talking to a clustered data using familiar statements like SELECT, UPDATE, DELETE or INSERT.</li>
                        <li>Boost application performance 1,000x and scale to over 1 billion transactions per second with in-memory storage of hundreds
                            of TB's of data for your SQL-based applications.</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/MySQL-User-Group-NL/events/240545280/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/MySQL-User-Group-NL/events/240545280/"
                             data-a2a-title="Turbocharge your SQL queries in-memory with Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="meetup-an-overview-of-ignite-persistent-store" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite Community Meetup - An Overview of Donated Ignite Persistent Store Feature&nbsp;<a href="/events.html#meetup-an-overview-of-ignite-persistent-store"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Meetup, GoToMeeting, Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">June 16, 2017 @8:00am</span>
                    <p>
                        Apache Ignite Community decided to gather and dive into the details of Ignite Persistent Store donation to the main code base.
                        It’s planned to give a general overview of the store learning more about its main capabilities and features as well as go over implementation details referring to the source code.

                        To join use the details below.<br/><br/>

                        Please join my meeting from your computer, tablet or smartphone.<br/>
                        <a href="https://global.gotomeeting.com/join/818661157">https://global.gotomeeting.com/join/818661157</a><br/><br/>

                        You can also dial in using your phone.<br/>
                        United States: +1 (571) 317-3112<br/><br/>

                        Access Code: 818-661-157
                    </p>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSS-Webinar-for-Ignite-Persistent-Store-walk-through-td18677.html#a18767" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSS-Webinar-for-Ignite-Persistent-Store-walk-through-td18677.html#a18767"
                             data-a2a-title="Apache Ignite Community Meetup - An Overview of Donated Ignite Persistent Store Feature">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="sparksummit2017-apacheignite-apachespark" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite and Apache Spark: This is Where Fast Data Meets the IoT&nbsp;<a href="/events.html#sparksummit2017-apacheignite-apachespark"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Spark Summit 2017, San Francisco, CA. Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">June 07, 2017 @3:20pm</span>
                    <p>
                        During this session, Denis will explain and demonstrate how to build a Fast Data solution that will receive
                        endless streams from the IoT side and will be capable of processing the streams in real-time.
                        In particular, you will learn the following:
                    </p>
                    <ul class="page-list">
                        <li>Data streaming to an Apache Ignite cluster from embedded devices powered by Apache Mynewt.</li>
                        <li>Real-time data processing with Apache Spark and Apache Ignite.</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://spark-summit.org/2017/events/apache-spark-and-apache-ignite-where-fast-data-meets-the-iot/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://spark-summit.org/2017/events/apache-spark-and-apache-ignite-this-is-where-fast-data-meets-the-iot/"
                             data-a2a-title="Apache Ignite and Apache Spark: This is Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacher-ignitetm-whats-new-version-201" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache® Ignite™ 2.0: Prelude to a Distributed SQL Database&nbsp;<a href="/events.html#apacher-ignitetm-whats-new-version-201"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">June 07, 2017 @11:00am PT / 2:00pm ET</span>
                    <p>
                        Apache Ignite 2.0 is a turnkey release which blends a distributed in-memory SQL database (IMDB) and an in-memory key-value data
                        grid (IMDG) under one data management platform.  It is also a necessary stepping stone ahead of Ignite 2.1 release
                        which will be focused around the native disk persistence, allowing Ignite operate equally well in-memory and on-disk.

                        You will learn how the off-heap memory architecture in Ignite has been re-engineered to better
                        support SSD or Flash-based persistence. The new off-heap design uses a page-based approach with
                        slab memory allocation, which may be optionally mapped to a persistent storage as is, without
                        having to serialize or deserialize the data. The new architecture automatically handles memory
                        fragmentation, significantly accelerates SQL, and almost completely removes costly garbage
                        collection pauses.

                        You will also learn how to create and alter SQL indexes at runtime, as well as utilize DDL to
                        update distributed data sets using standard SQL syntax. We will also cover B+Tree data structures
                        used to store SQL indexes off-heap.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/apacher-ignitetm-20-prelude-distributed-sql-database" target="_blank">Register for this webinar</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/apacher-ignitetm-20-prelude-distributed-sql-database"
                             data-a2a-title="Apache® Ignite™ 2.0: Prelude to a Distributed SQL Database">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apachecon2017-apacheignite-apachespark" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite and Apache Spark: This is Where Fast Data Meets the IoT&nbsp;<a href="/events.html#apachecon2017-apacheignite-apachespark"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">ApacheCon North America, Miami, FL. Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">May 18, 2017 @2:40pm</span>
                    <p>
                        During this session, Denis will explain and demonstrate how to build a Fast Data solution that will receive
                        endless streams from the IoT side and will be capable of processing the streams in real-time.
                        In particular, you will learn the following:
                    </p>
                    <ul class="page-list">
                        <li>Data streaming to an Apache Ignite cluster from embedded devices powered by Apache Mynewt.</li>
                        <li>Real-time data processing with Apache Spark and Apache Ignite.</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://apachecon2017.sched.com/event/9zot" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://apachecon2017.sched.com/event/9zot"
                             data-a2a-title="Apache Ignite and Apache Spark: This is Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="apachebigdata2017-apacheignite-sql-grid" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite SQL Grid: Hot Blend of Traditional SQL and Swift Data Grid&nbsp;<a href="/events.html#apachebigdata2017-apacheignite-sql-grid"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">ApacheCon North America, Miami, FL. Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">May 18, 2017 @10:00am</span>
                    <p>
                        In-memory data grids bring exceptional performance and scalability gains to applications built on top of them.
                        The applications truly achieve 10x more performance improvement and become easily scalable and fault-tolerant
                        thanks to the unique data grids architecture. However, because of this particular architecture,
                        a majority of data grids have to sacrifice traditional SQL support requiring application developers to
                        completely rewrite their SQL-based code to support data grid specific APIs.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://apachebigdata2017.sched.com/event/A01a?iframe=no" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://apachebigdata2017.sched.com/event/A01a?iframe=no"
                             data-a2a-title="Apache Ignite SQL Grid: Hot Blend of Traditional SQL and Swift Data Grid">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Miami-Hadoop-User-Group" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite and Apache Spark: Where Fast Data Meets the IoT&nbsp;<a href="/events.html#Miami-Hadoop-User-Group"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Miami Hadoop User Group, Miami, FL. Speaker - Denis Magda</span><br/><br/>
                    <span class="news-date">May 17, 2017 @6:00pm</span>
                    <p>
                        During this session, Denis will explain and demonstrate how to build a Fast Data solution that will receive
                        endless streams from the IoT side and will be capable of processing the streams in real-time.
                        In particular, you will learn the following:
                    </p>
                    <ul class="page-list">
                        <li>Data streaming to an Apache Ignite cluster from embedded devices powered by Apache Mynewt.</li>
                        <li>Real-time data processing with Apache Spark and Apache Ignite.</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Miami-Hadoop-User-Group/events/239713172/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Miami-Hadoop-User-Group/events/239713172/"
                             data-a2a-title="Apache Ignite and Apache Spark: Where Fast Data Meets the IoT">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="benchmarking-apache-ignite-still-keeps-ahead-of-ha-1" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Benchmarking: Apache Ignite Still Keeps Ahead Of Hazelcast&nbsp;<a href="/events.html#benchmarking-apache-ignite-still-keeps-ahead-of-ha-1"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Blog, Denis Magda</span><br/><br/>
                    <span class="news-date">May 12, 2017</span>
                    <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>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://dzone.com/articles/benchmarking-apache-ignite-still-keeps-ahead-of-ha-1" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://dzone.com/articles/benchmarking-apache-ignite-still-keeps-ahead-of-ha-1"
                             data-a2a-title="Benchmarking: Apache Ignite Still Keeps Ahead Of Hazelcast">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="Apache-Flink-London-Meetup" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Flink meets Apache Ignite&nbsp;<a href="/events.html#Apache-Flink-London-Meetup"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Apache Flink London Meetup, Speaker - Akmal B. Chaudhri</span><br/><br/>
                    <span class="news-date">May 10, 2017 @6:30pm</span>
                    <p>
                        Akmal B. Chaudhri will be giving a quick introduction of Apache Ignite, its main capabilities and how it can add value to your pipelines.
                        Akmal is a Technical Evangelist, specializing in Big Data, NoSQL and NewSQL database technologies.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Apache-Flink-London-Meetup/events/239663941/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Apache-Flink-London-Meetup/events/239663941/"
                             data-a2a-title="Apache Flink meets Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacheignite-oscon-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">The next phase of distributed systems with Apache Ignite&nbsp;<a href="/events.html#apacheignite-oscon-2017"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">OSCON, Austin, TX. Speaker - Dani Traphagen</span><br/><br/>
                    <span class="news-date">May 10, 2017 @5:05pm</span>
                    <p>
                        Is memory the new disk? If so, what does this mean for the future of database systems and persistence as we know it?
                        Will all our data(bases) still belong to us? Dani Traphagen explores the key paradigm shifts currently impacting those
                        Fortune 500 companies that view disk as a bottleneck. Dani explains how to optimize toward the cache, leveraging it for low-latency,
                        highly available microservices architectures with the hot-and-fresh-out-of-the-kitchen open source project Apache Ignite.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://conferences.oreilly.com/oscon/oscon-tx/public/schedule/detail/60801" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://conferences.oreilly.com/oscon/oscon-tx/public/schedule/detail/60801"
                             data-a2a-title="The next phase of distributed systems with Apache Ignite">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacher-ignitetm-real-time-processing-iot-generated-streaming-data" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache® Ignite™: Real-Time Processing of IoT-Generated Streaming Data&nbsp;<a href="/events.html#apacher-ignitetm-real-time-processing-iot-generated-streaming-data"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">May 10, 2017 @11:00am</span>
                    <p>
                        During this 1-hour webinar, Denis will explain and demonstrate how to build a fast data solution that can receive endless IoT-generated streams and
                        process them in real-time using Apache Ignite's distributed in-memory computing platform. In particular, you will learn the following:
                    </p>
                    <ul class="page-list">
                        <li>How to stream data to an Apache Ignite cluster from embedded devices</li>
                        <li>How to conduct real-time data processing on this stream using Apache Ignite</li>
                    </ul>

                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/apacher-ignitetm-real-time-processing-iot-generated-streaming-data" target="_blank">Register for this webinar</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/apacher-ignitetm-real-time-processing-iot-generated-streaming-data"
                             data-a2a-title="Apache® Ignite™: Real-Time Processing of IoT-Generated Streaming Data">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apache-ignite-20-released" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 2.0 Released&nbsp;<a href="/events.html#apache-ignite-20-released"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">May 05, 2017</span>
                    <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>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://blogs.apache.org/ignite/entry/apache-ignite-2-0-redesigned" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://blogs.apache.org/ignite/entry/apache-ignite-2-0-redesigned"
                             data-a2a-title="Apache Ignite 2.0 Released">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="presenting-apache-ignite-at-percona-live-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Accelerate MySQL® for Demanding OLAP and OLTP Use Cases with Apache® Ignite™&nbsp;<a href="/events.html#presenting-apache-ignite-at-percona-live-2017"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Percona Live 2017, Santa Clara, CA, USA. Speaker - Nikita Ivanov</span><br/><br/>
                    <span class="news-date">April 25, 2017 @1:20pm PT</span>
                    <p>
                        How to overcome the limitations of the MySQL architecture for big data analytics by leveraging the parallel distributed
                        computing and ANSI SQL-99 capabilities of Apache Ignite. How to use Apache Ignite as an advanced high performance cache platform for hot data.
                        The strategic benefits of using Apache Ignite instead of memcache, Redis®, Elastic®, or Apache® Spark™.
                        At the end of the session, you will understand how incorporating Apache Ignite into your architecture can empower dramatically faster analytics and
                        transactions when augmenting your current MySQL infrastructure.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.percona.com/live/17/sessions/accelerate-mysql®-demanding-olap-and-oltp-use-cases-apache®-ignite™-0" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.percona.com/live/17/sessions/accelerate-mysql®-demanding-olap-and-oltp-use-cases-apache®-ignite™-0"
                             data-a2a-title="Accelerate MySQL® for Demanding OLAP and OLTP Use Cases with Apache® Ignite™">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacher-ignitetm-memory-backbone-microservices-based-architectures" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache® Ignite™: An In-Memory Backbone for Microservices-Based Architectures&nbsp;<a href="/events.html#apacher-ignitetm-memory-backbone-microservices-based-architectures"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">April 19, 2017 @11:00am PT / 2:00pm ET</span>
                    <p>
                        When systems that rely on microservices are used under high load or have to process rapidly growing volumes of data,
                        they usually face the same issues and difficulties as applications that are not microservices-based. Disk-backed databases become a
                        performance bottleneck as they can no longer keep up with growing volumes of data that have to be stored and processed in parallel.
                        This degrades application performance and ultimately causes instability.<br/>

                        This webinar discusses how in-memory computing using Apache® Ignite™ can overcome the performance limitations
                        common to microservices architectures built using traditional database architectures.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/apacher-ignitetm-memory-backbone-microservices-based-architectures" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/apacher-ignitetm-memory-backbone-microservices-based-architectures"
                             data-a2a-title="Apache® Ignite™: An In-Memory Backbone for Microservices-Based Architectures">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>

                <section id="presenting-apache-ignite-performance-jpoint-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Scalability in Distributed In-Memory Systems&nbsp;<a href="/events.html#presenting-apache-ignite-performance-jpoint-2017"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">JPoint 2017, Moscow, Russia. Speaker - Vladimir Ozerov</span><br/><br/>
                    <span class="news-date">April 7, 2017 @15:30pm</span>
                    <p>
                        In-memory computing frameworks and products rely on a simple horizontal scalability property - the more machines we have in a cluster the better the performance.
                        However, a reasonable question arises. If I add a second machine to the cluster will I get 2x improvement? If there are 10 machines in a cluster should I expect overall 10x performance increase?
                        Is it true and if, yes, if the guarantee meets all the time?
                        Join Yakov on his talk to get answers on these questions and learn more about scalability and concurrency concepts implemented in Apache Ignite In-Memory Data Fabric.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://jpoint.ru/talks/scalability-in-distributed-in-memory-systems/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://jpoint.ru/talks/scalability-in-distributed-in-memory-systems/"
                             data-a2a-title="Scalability in Distributed In-Memory Systems, Speaker - Vladimir Ozerov">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="presenting-apache-ignite-performance-jbreak-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Scalability in Distributed In-Memory Systems&nbsp;<a href="/events.html#presenting-apache-ignite-performance-jbreak-2017"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">JBreak 2017, Novosibirsk, Russia. Speaker - Yakov Zhdanov</span><br/><br/>
                    <span class="news-date">April 4, 2017 @15:15pm</span>
                    <p>
                        In-memory computing frameworks and products rely on a simple horizontal scalability property - the more machines we have in a cluster the better the performance.
                        However, a reasonable question arises. If I add a second machine to the cluster will I get 2x improvement? If there are 10 machines in a cluster should I expect overall 10x performance increase?
                        Is it true and if, yes, if the guarantee meets all the time?
                        Join Yakov on his talk to get answers on these questions and learn more about scalability and concurrency concepts implemented in Apache Ignite In-Memory Data Fabric.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://2017.jbreak.ru/en/talks/scalability-in-distributed-in-memory-systems/" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://2017.jbreak.ru/en/talks/scalability-in-distributed-in-memory-systems/"
                             data-a2a-title="Scalability in Distributed In-Memory Systems, Speaker - Yakov Zhdanov">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="presenting-apache-ignite-sql-grid-pgconf-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Presenting Apache Ignite SQL Grid at PGConf US 2017&nbsp;<a href="/events.html#presenting-apache-ignite-sql-grid-pgconf-2017"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Presentation, Denis Magda</span><br/><br/>
                    <span class="news-date">March 30, 2017 @14:00pm EDT</span>
                    <p>
                        Learn how to boost performance 1,000x and scale to over 1 billion transactions per second with in-memory storage of hundreds
                        of TBs of data for your SQL-based applications. Apache Ignite is a unique NewSQL platform that is built on top of a distributed
                        key-value storage and provides full-fledged SQL support. Denis will show how Apache Ignite handles auto-loading of SQL schema and data,
                        SQL indexes, compound indexes support, and various forms of SQL queries including distributed SQL joins.
                        It will be demonstrated how to connect to Apache Ignite from your favorite tool or application language using ODBC or JDBC driver and
                        start talking to a clustered data using familiar statements like SELECT, UPDATE, DELETE or INSERT.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="http://pgconf.us/conferences/2017/program/proposals/340" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="http://pgconf.us/conferences/2017/program/proposals/340"
                             data-a2a-title="Presenting Apache Ignite SQL Grid at PGConf US 2017">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="presenting-apache-ignite-sql-grid" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Presenting Apache Ignite SQL Grid at Big Data Bootcamp&nbsp;<a href="/events.html#presenting-apache-ignite-sql-grid"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Presentation, Denis Magda</span><br/><br/>
                    <span class="news-date">March 28, 2017 @1:00pm PT</span>
                    <p>
                        In this presentation, Denis will introduce Apache Ignite SQL Grid component that combines the best of two worlds - performance and scalability of data grids and
                        traditional ANSI-99 SQL support of relational databases. Moreover, Denis will take an existing application that works with a relational database and
                        will show how to run it on top of Apache Ignite with minimum efforts.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://blogs.apache.org/ignite/entry/presenting-apache-ignite-sql-grid" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://blogs.apache.org/ignite/entry/presenting-apache-ignite-sql-grid"
                             data-a2a-title="Presenting Apache Ignite SQL Grid at Big Data Bootcamp">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="presenting-apache-ignite-codemotion-rome-2017" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Presenting Apache Ignite at Codemotion Rome 2017&nbsp;<a href="/events.html#presenting-apache-ignite-codemotion-rome-2017"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Presentation, Mandhir Gidda</span><br/><br/>
                    <span class="news-date">March 24, 2017 @15:00pm</span>
                    <p>
                        Join and learn about Apache Ignite which is a high-performance, integrated and distributed in-memory platform for
                        computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with traditional
                        disk-based or flash technologies.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="http://rome2017.codemotionworld.com/wp-content/themes/event/detail-talk.php?detail=5799" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="http://rome2017.codemotionworld.com/wp-content/themes/event/detail-talk.php?detail=5799"
                             data-a2a-title="Presenting Apache Ignite at Codemotion Rome 2017">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacher-sql-grid-webinar" class="page-section news-section">
                    <div><h3 style="display:inline-block;">The Apache&reg; Ignite&trade; SQL Grid: A Hot Blend of Traditional SQL and In-Memory Data Grids&nbsp;<a href="/events.html#apacher-sql-grid-webinar"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">March 15, 2017 @11:00am PT / 2:00pm ET</span>
                    <p>
                        During this webinar, Apache Ignite PMC chair Denis Magda will introduce the SQL Grid component of Apache&reg; Ignite&trade;. He will discuss:
                    </p>
                    <ul class="page-list">
                        <li>ANSI-99 SQL queries including distributed joins</li>
                        <li>Creating and leveraging SQL indices</li>
                        <li>Data modification with ANSI-99 DML (INSERT, UPDATE, DELETE, etc.)</li>
                        <li>Using Apache Ignite's JDBC and ODBC drivers</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/company/news/events/gridgain-webinar-apacher-ignitetm-sql-grid-hot-blend-traditional-sql-and-memory" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/company/news/events/gridgain-webinar-apacher-ignitetm-sql-grid-hot-blend-traditional-sql-and-memory"
                             data-a2a-title="The Apache&reg; Ignite&trade; SQL Grid: A Hot Blend of Traditional SQL and In-Memory Data Grids">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="london_ignite_meetup_feb_23" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite: Transform batch-based system into swift real-time solution&nbsp;<a href="/events.html#london_ignite_meetup_feb_23"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Apache Ignite London Meetup</span><br/><br/>
                    <span class="news-date">February 23, 2017</span>
                    <p>
                        IHS Markit will present first on how they have been using Apache Ignite on several major projects.
                        The 2nd part of the meetup will be led by Mandhir Gidda who's been working with in-memory technologies for nearly 10 years.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.meetup.com/Apache-Ignite-London/events/237189063" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.meetup.com/Apache-Ignite-London/events/237189063"
                             data-a2a-title="Apache Ignite: Transform batch-based system into swift real-time solution">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="apacher-ignitetm-web-console" class="page-section news-section">
                    <div><h3 style="display:inline-block;">The Apache&reg; Ignite&trade; Web Console: Automating RDBMS Integration&nbsp;<a href="/events.html#apacher-ignitetm-web-console"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Denis Magda</span><br/><br/>
                    <span class="news-date">February 15, 2017 @11:00am PT / 2:00pm ET</span>
                    <p>
                        During this webinar, Apache Ignite PMC chair Denis Magda will demonstrate how  Apache&reg; Ignite&trade; Web Console enables automatic integration of Apache Ignite and your RDBMS. He will show you how to:
                    </p>
                    <ul class="page-list">
                        <li>Import a RBMS schema and map it to the Apache Ignite caches</li>
                        <li>Setup indexes</li>
                        <li>Create a Java POJO</li>
                        <li>Download a ready-to-run Apache Ignite based project that will be fully integrated with the RDBMS</li>
                    </ul>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/apacher-ignitetm-web-console-automating-rdbms-integration" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/apacher-ignitetm-web-console-automating-rdbms-integration"
                             data-a2a-title="The Apache&reg; Ignite&trade; Web Console: Automating RDBMS Integration">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="deploying-apacher-ignitetm-and-gridgain-top-7-faqs" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Deploying Apache&reg; Ignite&trade; – Top 7 FAQs&nbsp;<a href="/events.html#deploying-apacher-ignitetm-and-gridgain-top-7-faqs"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Webinar, Christos Erotocritou and Rachel Pedreschi</span><br/><br/>
                    <span class="news-date">January 25, 2017 @11:00am PT / 2:00pm ET</span>
                    <p>
                        Christos Erotocritou and Rachel Pedreschi have helped numerous customers get started with Apache&reg; Ignite&trade; and GridGain. During this 1-hour webinar, they will share answers to the most common questions asked prior to deployment.
                        They will also provide guidance that will save you time and make deploying Apache Ignite a more enjoyable experience.
                    </p>
                    <div class="col-sm-12 col-md-9 col-xs-12 news-readmore">
                        <p>
                            <a href="https://www.gridgain.com/resources/webinars/deploying-apacher-ignitetm-and-gridgain-top-7-faqs" target="_blank">Read more</a>
                        </p>
                    </div>
                    <div class="col-sm-12 col-md-3 col-xs-12 ">
                        
                        <!-- AddToAny BEGIN -->
                        <div class="a2a_kit a2a_kit_size_28 a2a_default_style news-socialmedia-icons"
                             data-a2a-url="https://www.gridgain.com/resources/webinars/deploying-apacher-ignitetm-and-gridgain-top-7-faqs"
                             data-a2a-title="Deploying Apache&reg; Ignite&trade; – Top 7 FAQs">
                            <a class="a2a_button_twitter"></a>
                            <a class="a2a_button_linkedin"></a>
                            <a class="a2a_button_facebook"></a>
                            <a class="a2a_dd" href="https://www.addtoany.com/share"></a>
                        </div>
                        <!-- AddToAny END -->
                    </div>
                    <p style="margin:0;">&nbsp;</p>
                </section>
                <section id="release-1.8.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.8.0&nbsp;<a href="/events.html#release-1.8.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">December 09, 2016</span>
                    <p>
                        This new release includes SQL DML operations support (INSERT, UPDATE, DELETE, MERGE) in Java,
                        MapR distribution support in Hadoop,
                        Entity Framework 2nd level cache and ASP.NET session state cache in .NET,
                        DML and distributed joins in ODBC,
                        stability and performance improvements, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.8.0</a>
                    </p>
                </section>
                <section id="apache-big-data-europe-nov-16-2" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Shared Memory Layer for Spark Applications&nbsp;<a href="/events.html#apache-big-data-europe-nov-16-2"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Dmitriy Setrakyan, Apache Big Data Europe</span><br/><br/>
                    <span class="news-date">November 16, 2016</span>
                    <p>
                        Join Dmitriy Setrakyan, Apache Ignite Project Management Committee Chairman and co-founder and Chief Product Officer at GridGain,
                        to learn more about the need to share state across different Spark jobs and applications and several technologies that make it possible, including Tachyon and Apache Ignite.
                    </p>
                    <p>
                        <a href="https://apachebigdataeu2016.sched.org/event/8m2O/shared-memory-layer-for-spark-applications-dmitriy-setrakyan-gridgain" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-big-data-europe-nov-16-1" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Shared Memory Layer and Faster SQL for Spark Applications&nbsp;<a href="/events.html#apache-big-data-europe-nov-16-1"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Dmitriy Setrakyan, Apache Big Data Europe</span><br/><br/>
                    <span class="news-date">November 16, 2016</span>
                    <p>
                        Learn the importance of In Memory File Systems, Shared In-Memory RDDs with Apache Ignite, as well as the need to index data in-memory for fast SQL execution.
                    </p>
                    <p>
                        <a href="https://apachebigdataeu2016.sched.org/event/8m2i/shared-memory-layer-and-faster-sql-for-spark-applications-dmitriy-setrakyan-gridgain" target="_blank">Read more</a>
                    </p>
                </section>
                <section id="apache-big-data-europe-nov-15" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite - Path to Converged Data Platform&nbsp;<a href="/events.html#apache-big-data-europe-nov-15"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">Dmitriy Setrakyan, Apache Big Data Europe</span><br/><br/>
                    <span class="news-date">November 15, 2016</span>
                    <p>
                        The presentation will take the audience on a roadmap discovery of Ignite moving to a converged storage model, supporting both, analytical and transactional data sets.
                    </p>
                    <p>
                        <a href="https://apachebigdataeu2016.sched.org/event/8TzM/apache-ignite-path-to-converged-data-platform-dmitriy-setrakyan-gridgain" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="release-1.7.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.7.0&nbsp;<a href="/events.html#release-1.7.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">August 05, 2016</span>
                    <p>
                        This new release includes support for distributed SQL JOIN, decimal support in ODBC,
                        custom affinity functions and ASP.NET Output Cache Provider in .NET, stability and performance improvements, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.7.0</a>
                    </p>
                </section>

                <section id="london-meetup-june-2016" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite London Meetup&nbsp;<a href="/events.html#london-meetup-june-2016"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">July 13, 2016</span>
                    <p>
                        Join us for a technical session to look at Apache Ignite and hear from BlackRock on how they believe it will
                        solve their application performance & scalability challenges.
                    </p>
                    <p>
                        Please RSVP on <a href="https://secure.meetup.com/register/?ctx=ref" target="_blank">Meetup.com</a>.
                    </p>
                    <p>
                        <a href="http://www.meetup.com/Apache-Ignite-London/events/231963106/" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="nyc-meetup-june-2016" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite NYC Meetup&nbsp;<a href="/events.html#nyc-meetup-june-2016"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">June 28, 2016</span>
                    <p>
                        Apache Ignite PMC member, Nikita Ivanov will be presenting a deep dive on Apache Ignite at our NYC meetup,
                        Tuesday, June 28 at Work Market, 240 W 37th St, 9th Floor, New York, NY.
                    </p>
                    <p>
                        Please RSVP on <a href="http://www.meetup.com/mysqlnyc/events/231578906/" target="_blank">Meetup.com</a>. Space is limited and is filling up fast!
                    </p>
                    <p>
                        <a href="http://www.meetup.com/mysqlnyc/events/231578906/" target="_blank">Read more</a>
                    </p>
                </section>


                <section id="release-1.6.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.6.0&nbsp;<a href="/events.html#release-1.6.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">May 23, 2016</span>
                    <p>
                        This new release includes support for deadlock detection in Ignite caches, ODBC driver, CacheStore implementation backed by Cassandra DB,
                        AtomicSequence and AtomicReference data structures for .NET, transactions API for C++ client, stability and fault-tolerance improvements, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.6.0</a>
                    </p>
                </section>


                <section id="ignite-extensions" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Ignite Adds Add-ons&nbsp;<a href="/events.html#ignite-extensions"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">February 17, 2016</span>
                    <p>
                        <a href="/addons.html">Add-ons</a> has been added to the website for projects built on top of Ignite. These projects intend to make user experience with Ignite easier. Currently, there are two such projects available -
                        <a href="https://github.com/sumeet70/aiex" target="_blank">Apache Ignite Extensions</a> and <a href="https://console.gridgain.com" target="_blank">GridGain Web Console</a>.
                    </p>
                    <p>
                        <a href="/addons.html" target="_blank">Read more</a>
                    </p>
                </section>


                <section id="release-1.5.0.final" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.5.0.final Released&nbsp;<a href="/events.html#release-1.5.0.final"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">January 4, 2016</span>
                    <p>
                        This final version of 1.5.0 includes support for .NET and C++, Streamer for MQTT, Twitter, Apache Flume, and Apache Camel,
                        OSGi support, "deadlock-free" transactions, compact binary protocol, performance improvements for SQL queries, transactions, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.5.0.final</a>
                    </p>
                </section>


                <section id="release-1.5.0-b1" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.5.0-b1 Early Access Released&nbsp;<a href="/events.html#release-1.5.0-b1"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">December 12, 2015</span>
                    <p>
                        This early access version includes support for .NET and C++, Streamer for MQTT, Twitter, and Apache Flume,
                        compact binary protocol, performance improvements for SQL queries, transactions, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.5.0-b1</a>
                    </p>
                </section>

                <section id="release-1.4.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.4.0 Released&nbsp;<a href="/events.html#release-1.4.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">September 28, 2015</span>
                    <p>
                        This is the first Apache Ignite release since the project graduated from incubation in
                        August, 2015. This new release includes SSL support to communication and discovery, support for log4j2, significantly faster JDBC driver implementation,
                        fixes for SQL queries group index logic, auto-retries for cache operations in recoverable cases and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.4.0</a>
                    </p>
                </section>

                <section id="apache-ignite-graduation" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite Graduated to a Top-Level Project&nbsp;<a href="/events.html#apache-ignite-graduation"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">August 25, 2015</span>
                    <p>
                        The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of more than 350
                        Open Source projects and initiatives, announced today that Apache™ Ignite™ has graduated from the Apache Incubator
                        to become a Top-Level Project (TLP), signifying that the project's community and products have been well-governed
                        under the ASF's meritocratic process and principles.
                    </p>
                    <p>
                        <a href="http://globenewswire.com/news-release/2015/08/25/763148/10146997/en/The-Apache-Software-Foundation-Announces-Apache-tm-Ignite-tm-as-a-Top-Level-Project.html" target="_blank">Read more</a>
                    </p>
                </section>


                <section id="release-1.3.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.3.0 Released&nbsp;<a href="/events.html#release-1.3.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">July 21, 2015</span>
                    <p>
                        This new release includes integration with Apache YARN for data center and resource
                        management, fixes for JTA transactions, Hibernate L2 Cache improvements, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.3.0</a>
                    </p>
                </section>

                <section id="release-1.2.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.2.0 Released&nbsp;<a href="/events.html#release-1.2.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">June 29, 2015</span>
                    <p>
                        This new release includes shared RDD for Apache Spark (based on Ignite Data Grid),
                        integration with Apache Mesos for data center management, client-mode for light-weight
                        cluster discovery, memory-size eviction policy, and more.

                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.2.0</a>
                    </p>
                </section>

                <section id="release-1.1.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.1.0 Released&nbsp;<a href="/events.html#release-1.1.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">May 28, 2015</span>
                    <p>
                        This new release includes Google Compute Engine and generic cloud TCP discovery IP finder, "Collocated" mode for SQL queries,
                        support for (*) star notation in cache names, fix for SQL union support, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.1.0</a>
                    </p>
                </section>

                <section id="release-1.0.0" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.0.0 Released&nbsp;<a href="/events.html#release-1.0.0"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">April 2, 2015</span>
                    <p>
                        This new release includes dynamic caching functionality to start and stop caches during runtime,
                        simplified Query API, automatic aggregation, grouping and sorting support for SQL Queries,
                        Streaming examples, and more.
                    </p>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.0.0</a>
                    </p>
                </section>

                <section id="release-1.0.0-RC3" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite 1.0.0-RC3 Released&nbsp;<a href="/events.html#release-1.0.0-RC3"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">March 24, 2015</span>
                    <p>
                        This is the first release of Apache Ignite project. The source code in large part is based
                        on the GridGain In-Memory Data Fabric, open source edition, v. 6.6.2, which was donated to Apache Software Foundation.
                        The main feature set of Ignite In-Memory Data Fabric includes:
                    </p>
                    <ul class="page-list">
                        <li>Advanced Clustering</li>
                        <li>Compute Grid</li>
                        <li>Data Grid</li>
                        <li>Service Grid</li>
                        <li>IGFS - Ignite File System</li>
                        <li>Distributed Data Structures</li>
                        <li>Distributed Messaging</li>
                        <li>Distributed Events</li>
                        <li>Streaming & CEP</li>
                    </ul>
                    <p>
                        <a href="/download.cgi" target="_blank">Download Ignite 1.0.0-RC3</a>
                    </p>
                </section>

                <section id="nikita-interview-ignite-incubation" class="page-section news-section">
                    <div><h3 style="display:inline-block;">InfoQ Interview with Nikita Ivanov on Apache Ignite Incubation&nbsp;<a href="/events.html#nikita-interview-ignite-incubation"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">December 3, 2014</span>
                    <p>
                        InfoQ caught up with Nikita Ivanov, CTO and founder of GridGain, about the
                        In-Memory Computing framework becoming an Apache project, motivation behind this decision,
                        and upcoming features and enhancements of GridGain.

                    </p>
                    <p>
                        <a href="http://www.infoq.com/articles/gridgain-apache-ignite" target="_blank">Read more</a>
                    </p>
                </section>

                <section id="apache-ignite-enters-incubation" class="page-section news-section">
                    <div><h3 style="display:inline-block;">Apache Ignite Enters Incubation&nbsp;<a href="/events.html#apache-ignite-enters-incubation"><i class="fa fa-anchor"></i></a></h3></div>
                    <span class="news-date">October 1, 2014</span>
                    <p>
                        GridGain recently announced that the GridGain In-Memory Data Fabric has been accepted
                        into the Apache Incubator program under the name "Apache Ignite." Earlier in 2014, GridGain was
                        transformed to an open source model through Apache 2.0 license. Now, the product will be available
                        under the Apache Foundation project portfolio.
                    </p>
                    <p>
                        <a href="http://www.infoq.com/news/2014/12/gridgain-ignite" 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>
