section.poweredvideos.container 
    .poweredvideos__grid
        +powvideo(
            "https://www.youtube.com/watch?v=3FFexcYIpmA",
            "/img/poweredby/videos/001.png",
            "IBM",
            "Leveraging In-Memory Compute Grids With Core Systems Of&nbsp;Record"
        )
            p Apache Ignite is used for IBM Z Mainframes workload acceleration.
            p 
                a(href="https://www.imcsummit.org/2019/us/session/leveraging-memory-compute-grids-core-systems-record", target="_blank") View presentation and learn more about speaker 

        +powvideo(
            "https://www.youtube.com/watch?v=Mhtt2QL_qCQ",
            "/img/poweredby/videos/002.png",
            "Raiffeisen Bank",
            "Apache Ignite, Load Reduction and System Scaling for Banking",
            "comvideo__txt--black"
        )
            p As users transition to digital channels, the load on the bank's systems has increased.
            p.comvideo__gray For example, since the beginning of 2020, the number of requests to the ABS subsystems from Raiffeisen-Online has grown by a third. 
            p Therefore, load reduction and system scaling  are constant and top priorities.

        +powvideo(
            "https://www.youtube.com/watch?v=z28rthKIrDk",
            "/img/poweredby/videos/003.png",
            "Teradata",
            "S9D Using Apache Ignite As&nbsp;A&nbsp;Part Of&nbsp;Real Time Campaigning"
        )
            p Apache Ignite usage for handling real time marketing campaigns.
            p
                a(href="https://www.imcsummit.org/2019/eu/session/using-apache-ignite-part-real-time-campaigning", target="_blank") View presentation and learn more about speakers

        +powvideo(
            "https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/",
            "/img/poweredby/videos/004.png",
            "Yahoo! Japan",
            "&laquo;Recent Purchases&raquo; With Apache Ignite",
            "", false
        )
            p <a href="https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/" target="_blank">This blog post</a> explains why Yahoo! Japan chose Apache Ignite for a highly scalable caching system that can process tens of thousands of requests per second.
            p.comvideo__gray SQL queries were performed via thin clients since they do not require a standard topology join, and therefore are easier to handle through container services. After a successful POC, Ignite fully met their requirements and was quickly rolled into production.

        +powvideo(
            "https://www.youtube.com/watch?v=ZZI7MVE1ZBo&t=2s",
            "/img/poweredby/videos/005.png",
            "American Airlines",
            "In-Memory Computing Patterns For High Volume, Real Time Applications",
        )
            p American Airlines’ IT&nbsp;transformations are due to&nbsp;the following advantages of&nbsp;Apache Ignite:
            ul.dashlist.pt-1
                li Improvement in bandwidth and response times
                li Improved availability
                li Horizontal and vertically scalability
                li Efficiency
                li ANSI-99 SQL and ACID transaction guarantees and ctr.
            p
                a(href="https://www.imcsummit.org/2018/us/session/memory-computing-patterns-high-volume-real-time-applications", target="_blank") View presentation and learn more about speakers

        +powvideo(
            "https://www.youtube.com/watch?v=CPmwnjDJ1Sk",
            "/img/poweredby/videos/006.png",
            "ING Bank",
            "Embracing The Service Consumption Shift In&nbsp;Banking"
        )
            p ING core banking system transformation with Apache Ignite.
            p
                a(href="https://www.imcsummit.org/2018/us/session/embracing-service-consumption-shift-banking", target="_blank") View presentation and learn more about speakers


        +powvideo(
            "https://www.youtube.com/watch?v=g1FcrOPXWyg",
            "/img/poweredby/videos/007.png",
            "Banco do Brasil",
            "Using Ignite And JBoss Drools To&nbsp;Implement A&nbsp;Complex Event Processing Solution",
            "comvideo__txt--black comvideo__txt--medium"
        )
            p Вanco do&nbsp;Brasil is&nbsp;developing the omnichannel Horus platform in-house. They implemented a&nbsp;complex event processing ecosystem that is&nbsp;based on&nbsp;Apache Ignite, JBoss Drools, and other components. The team also built microservices and interface applications, both event-driven.

        +powvideo(
            "https://www.youtube.com/watch?v=EdFOKJIjRSg",
            "/img/poweredby/videos/008.png",
            "24 Hour Fitness",
            "Fitness + In Memory Computing = Getting Ahead Of The Game"
        )
            p Apache Ignite as a digital integration hub and database for a variety of 24 Hour Fitness services.
            p
                a(href="https://www.imcsummit.org/2019/us/session/fitness-memory-computing-getting-ahead-game", target="_blank") View presentation and learn more about speakers

        +powvideo(
            "https://www.youtube.com/watch?v=jF9T2cJB6t0",
            "/img/poweredby/videos/009.png",
            "JPMorgan Chase",
            "High Performance Exposure Management With Apache Ignite",
            "comvideo__txt--black"
        )
            p Exposure management poses unique technical challenges for Asset Management. Requests involve heavy computation on&nbsp;top of&nbsp;millions of&nbsp;data points with target response times of&nbsp;around a&nbsp;1/3&nbsp;second. 
            p This challenge was solved using an&nbsp;Apache Ignite-based platform.

        +powvideo(
            "https://www.youtube.com/watch?v=B8A8yR_e6VM",
            "/img/poweredby/videos/010.png",
            "JPMorgan Chase",
            "Real Time Exposure Management Using Ignite",
            "comvideo__txt--black"
        )
            p The increasing need in&nbsp;the finance world to&nbsp;apply transformations to&nbsp;large datasets in&nbsp;real time led the Asset Management&rsquo;s portfolio management system team to&nbsp;select Ignite to&nbsp;achieve persistence, caching and integrated compute.

    .poweredvideos__linkwrap.pt-5
        a.poweredvideos__loadmore(href="#", data-hideopen="morevideo", data-invis="1") Load more stories

    .poweredvideos__morewrap(data-hidebox="morevideo")
        .poweredvideos__more
            +powvideo(
                "https://www.youtube.com/watch?v=-t-Syy9blXQ",
                "/img/poweredby/videos/011.png",
                "BNP Paribas",
                "Apache Ignite As&nbsp;A&nbsp;Hybrid Transactional-Analytical Processing Solution At&nbsp;A&nbsp;Large Investment Bank",
                "comvideo__txt--black comvideo__txt--medium"
            )
                p A&nbsp;hybrid transactional-analytical processing (HTAP) solution in&nbsp;BNP Paribas is&nbsp;powered by&nbsp;Apache Ignite, and enables the bank to&nbsp;make key business decisions in&nbsp;real time.

            +powvideo(
                "https://www.youtube.com/watch?v=NUxdoL-K9Ys",
                "/img/poweredby/videos/012.png",
                "nference.ai",
                "How nference.ai Leverages Ignite For Distributed Analytics In&nbsp;The Bioinformatics Domain",
                "comvideo__txt--black  comvideo__txt--medium"
            )
                p nference.ai uses Ignite for distributed analytics in&nbsp;the bioinformatics domain.
                p Ignite, as a horizontally scalable framework, allows for the defining of different statistical analyses, and the execution of it on TBs of numerical data in real time, without movement of data.

            +powvideo(
                "https://www.youtube.com/watch?v=KLnvIiwAl2o",
                "/img/poweredby/videos/013.png",
                "Trimble",
                "Building A&nbsp;Live Geospatial Analytics Platform For Construction Productivity With Apache Ignite",
                "comvideo__txt--black  comvideo__txt--medium"
            )
                p Trimble built a&nbsp;live geospatial analytics platform for construction productivity with Apache Ignite.
                p.comvideo__gray Apache Ignite forms a key infrastructural component of the TRex platform. It supports the real time ingestion of data from the field, along with OLTP-style analytics and queries against that data, such as thematic tiling, volumes & cut/fill calculations, spatial profiling, etc.

            +powvideo(
                "https://www.youtube.com/watch?v=_mnZQ3JDcn8",
                "/img/poweredby/videos/014.png",
                "Sentienz",
                "Ignite Success Story: How Ignite Fuels The High Throughput Messaging In&nbsp;Sentienz Akiro",
                "comvideo__txt--black  comvideo__txt--medium"
            )
                p Sentienz uses Apache Ignite to&nbsp;handle more than a million requests per second from 10&nbsp;Million devices with a&nbsp;single cluster IoT platform.

            +powvideo(
                "https://www.imcsummit.org/2017/eu/sessions/using-memory-grid-compute-achieve-scalability-and-high-performance-legacy-travel",
                "/img/poweredby/videos/015.png",
                "JacTravel",
                "Using In-Memory Grid Compute To&nbsp;Achieve Scalability And High Performance With Legacy Travel Applications",
                "", false
            )
                p <a href="https://www.imcsummit.org/2017/eu/sessions/using-memory-grid-compute-achieve-scalability-and-high-performance-legacy-travel">This presentation</a> looks at&nbsp;the technical challenges presented to&nbsp;JacTravel Group following the acquisition of&nbsp;rival hotel accommodation provider TotalStay Group in&nbsp;2016.
                p.comvideo__gray Working with specialist technology consultancy, CG Consultancy, a strategic 18-month project was formed with a roadmap to consolidate booking platforms, ring-fence legacy functionality and to deliver enhanced search capability - underpinned <strong>with in-memory data grid</strong> capabilities of Apache Ignite.

            +powvideo(
                "https://www.youtube.com/watch?v=0iJ0a9Cy_rA",
                "/img/poweredby/videos/016.png",
                "Sberbank",
                "High Availability And Disaster Recovery For IMDG"
            )
                p Digital transformation of Sberbank banking services with Apache Ignite.
                p
                    a(href="https://www.imcsummit.org/2017/us/sessions/high-availability-and-disaster-recovery-imdg", target="_blank") View presentation and learn more about speakers

            +powvideo(
                "https://www.youtube.com/watch?v=MMI0RIiLadM",
                "/img/poweredby/videos/017.png",
                "Wellington Management",
                "Implementation Of&nbsp;Investment Book Of&nbsp;Record (IBOR) Using Apache Ignite"
            )
                p Implementation Of&nbsp;Investment Book Of&nbsp;Record (IBOR) Using Apache Ignite.
                p
                    a(href="https://www.imcsummit.org/2017/us/sessions/implementation-investment-book-record-ibor-using-apache-ignitegridgain", target="_blank") View presentation and learn more about speakers

            +powvideo(
                "https://www.youtube.com/watch?v=PFHb-UuhGkk",
                "/img/poweredby/videos/018.png",
                "E-Therapeutics",
                "Data-Driven Drug Discovery",
                "comvideo__txt--black"
            )
                p Apache Ignite as a high-performance computing system for drug discovery.

            +powvideo(
                "https://www.youtube.com/watch?v=GoXBevB9iKA",
                "/img/poweredby/videos/019.png",
                "Hypi",
                "Building A&nbsp;Graph Centric Platform On&nbsp;Ignite"
            )
                p Apache Ignite as&nbsp;a&nbsp;graph centric platform.
                p
                    a(href="https://www.imcsummit.org/2019/eu/session/building-graph-centric-platform-ignite", target="_blank") View presentation and learn more about speakers

            +powvideo(
                "https://www.youtube.com/watch?v=v5ecWoC1TC4",
                "/img/poweredby/videos/020.png",
                "TrendMiner",
                "Interactive Historical Data Analysis",
                "comvideo__txt--black"
            )
                p Visualization and analysis of&nbsp;massive amounts of&nbsp;historical data in&nbsp;real time with Apache Ignite compute grid capabilities.
                p
                    a(href="https://www.imcsummit.org/2019/eu/session/trendminer-interactive-historical-data-analysis", target="_blank") View presentation and learn more about speakers

            +powvideo(
                "https://www.youtube.com/watch?v=78UE11GrWzk",
                "/img/poweredby/videos/021.png",
                "Agilent Technologies Inc.",
                "Leveraging In-Memory Data Grid For Faster Time To&nbsp;Market"
            )
                p Leveraging in-memory data grid for faster time-to-market and data flexibility problems of&nbsp;digital channels.
                p
                    a(href="https://www.imcsummit.org/2018/us/session/leveraging-memory-data-grid-faster-time-market-and-data-flexibility-problems-digital", target="_blank") View presentation and learn more about speakers

            +powvideo(
                "https://www.youtube.com/watch?v=1D8hyLWMtfM",
                "/img/poweredby/videos/022.png",
                "The Glue",
                "How To&nbsp;Build An&nbsp;Event Driven, Dynamically Reconfigurable Microservices Platform",
                "comvideo__txt--black comvideo__txt--medium"
            )
                p How to&nbsp;build an&nbsp;event driven, dynamically reconfigurable micro services platform with Apache Ignite.

            +powvideo(
                "https://www.youtube.com/watch?v=RxWLt3x_yBk",
                "/img/poweredby/videos/023.png",
                "FSB Tech",
                "Scaling Sports Betting From FSB Tech",
                "comvideo__txt--black"
            )
                p Building a&nbsp;real time sports betting platform with Apache Ignite.

            +powvideo(
                "https://www.youtube.com/watch?v=wkCW8YC8eKU",
                "/img/poweredby/videos/024.png",
                "Dutch Railways",
                "Detecting Potentially Hazardous Situations In Dutch Railway Planning Using Apache Ignite",
                "comvideo__txt--black  comvideo__txt--medium"  
            )
                p Detecting potentially hazardous situations in Dutch railway planning to meet the challenges of one of the busiest rail infrastructures in Europe. JDriven built a space-based architecture with Apache Ignite.

            +powvideo(
                "https://www.youtube.com/watch?v=qYd9GGRC4L0",
                "/img/poweredby/videos/025.png",
                "HomeAway",
                "An&nbsp;Ignite Compute Grid <br>In&nbsp;The Cloud"
            )
                p HomeAway is&nbsp;one of&nbsp;the leading vacation rental websites.
                p With Ignite, HomeAway employed a&nbsp;large, in-memory compute grid to&nbsp;move a&nbsp;myriad of&nbsp;their systems to&nbsp;the Cloud.