section.poweredvideos.container 
    .poweredvideos__grid
        +powvideo(
            "https://www.youtube.com/watch?v=3FFexcYIpmA",
            "/public/img/poweredby/videos/001.png",
            "IBM",
            "Leveraging In&nbsp;Memory Compute Grids With Core Systems Of&nbsp;Record"
        )
            p Apache Ignite is&nbsp;used for IBM Z&nbsp;Mainframes workloads 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",
            "/public/img/poweredby/videos/002.png",
            "Raiffeisen Bank",
            "How To&nbsp;Use Apache Ignite To&nbsp;Rescue The Backend Of&nbsp;A&nbsp;Bank",
            "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",
            "/public/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/",
            "/public/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 be handled through container services. After a successful POC, Ignite fully met their requirements and was quickly rolled into production.

        +powvideo(
            "https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/",
            "/public/img/poweredby/videos/005.png",
            "American Airlines",
            "In-Memory Computing Patterns For High Volume, Real Time Applications",
            "", false
        )
            p American Airlines IT&nbsp;transformations are due to&nbsp;the following advantages of&nbsp;Apache Ignite:
            ul.dashlist.pt-1
                li Bandwidth and response times improvement
                li Improved availability
                li Horizontal and vertically scalability
                li Efficiency
                li ANSI-99 SQL and ACID transaction guarantees ant 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",
            "/public/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",
            "/public/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",
            "/public/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",
            "/public/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",
            "/public/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",
                "/public/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",
                "/public/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&nbsp;a&nbsp;horizontally scalable framework allows to&nbsp;define different statistical analyses and execute it&nbsp;on&nbsp;TB&rsquo;s of&nbsp;numerical data in&nbsp;real-time, without movement of&nbsp;data.

            +powvideo(
                "https://www.youtube.com/watch?v=NUxdoL-K9Ys",
                "/public/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&nbsp;key infrastructure component of&nbsp;TRex platform. It&nbsp;supports real-time ingest of&nbsp;data from the field along with OLTP style analytics and queries against that data such as&nbsp;thematic tiling, volumes &amp;&nbsp;cut/fill calculations, spatial profiling, etc.

            +powvideo(
                "https://www.youtube.com/watch?v=_mnZQ3JDcn8",
                "/public/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 1Millions 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",
                "/public/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",
                "/public/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",
                "/public/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",
                "/public/img/poweredby/videos/018.png",
                "E-Therapeutics",
                "Data Driven Drug Discovery",
                "comvideo__txt--black"
            )
                p Apache Ignite as&nbsp;a&nbsp;high-performance compute system for drugs&rsquo; discovery.

            +powvideo(
                "https://www.youtube.com/watch?v=GoXBevB9iKA",
                "/public/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",
                "/public/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",
                "/public/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",
                "/public/img/poweredby/videos/022.png",
                "The Glue",
                "How To&nbsp;Build An&nbsp;Event Driven, Dynamically Re-configurable Microservices Platform",
                "comvideo__txt--black comvideo__txt--medium"
            )
                p How to&nbsp;build an&nbsp;event driven, dynamically re-configurable micro services platform with Apache Ignite.

            +powvideo(
                "https://www.youtube.com/watch?v=RxWLt3x_yBk",
                "/public/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",
                "/public/img/poweredby/videos/024.png",
                "Dutch Railways",
                "Detecting Potential Hazardous Situations In The Dutch Railway Planning Using Apache Ignite",
                "comvideo__txt--black  comvideo__txt--medium"  
            )
                p Detecting Potential Hazardous Situations in&nbsp;the Dutch Railway Planning to&nbsp;meet challenges of&nbsp;one of&nbsp;the busiest rail infrastructures in&nbsp;Europe JDriven built a&nbsp;space-based architecture with Apache Ignite.

            +powvideo(
                "https://www.youtube.com/watch?v=qYd9GGRC4L0",
                "/public/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.