footer.footer
    .container.footer__top
        section.footer1 
            a(href="/features/").footer__title Features
            ul.footer__menu 
                li
                    a(href="/arch/multi-tier-storage.html") Multi-Tier Storage
                li
                    a(href="/arch/native-persistence.html") Native Persistence
                li
                    a(href="/features/sql.html") Distributed SQL
                li
                    a(href="/features/acid-transactions.html") ACID Transactions
                li
                    a(href="/features/key-value-apis.html") Key Value APIs
                li
                    a(href="/features/compute-apis.html") Compute APIs
                li
                    a(href="/features/machinelearning.html") Machine Learning
                li
                    a(href="/features/service-apis.html") Services
                li
                    a(href="/features/streaming.html") Real-Streaming APIs
                li
                    a(href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries") Continuous Queries
                li
                    a(href="https://ignite.apache.org/docs/latest/messaging") Messaging
        section.footer2
            a(href="/use-cases/").footer__title Use Cases
            ul.footer__menu 
                li
                    a(href="/use-cases/in-memory-cache.html") In-Memory Cache
                li
                    a(href="/use-cases/in-memory-data-grid.html") In-Memory Data Grid
                li
                    a(href="/use-cases/in-memory-database.html") In-Memory Database
                li
                    a(href="/use-cases/high-performance-computing.html") High-Performance Computing
                li
                    a(href="/use-cases/digital-integration-hub.html") Digital Integration Hub
                li
                    a(href="/use-cases/key-value-store.html") Key-Value Store
                li
                    a(href="/use-cases/spark-acceleration.html") Apache Spark Acceleration
                li
                    a(href="/use-cases/hadoop-acceleration.html") Apache Hadoop Acceleration
        section.footer3
            a(href="/our-community.html").footer__title Community
            a(href="/resources.html").footer__title Resources
            a(href="/events.html").footer__title Events

        section.footer4
            .footer4__item Join Our <a href="mailto:dev@ignite.apache.org">Dev Mailing List</a>
            .footer4__item.pt-2 Or write your question
            .footer4__item.pt-1 user@ignite.apache.org
            .footer4__item.pt-5 Follow Us:
            .footer4__socwrap.flexi.pt-2
                a.footer4__soc(href="https://github.com/apache/ignite", target="_blank")
                    img(src="/img/icon-github.svg", alt="") 
                a.footer4__soc(href="https://www.linkedin.com/showcase/apache-ignite/", target="_blank")
                    img(src="/img/icon-linkedin.svg", alt="") 
                a.footer4__soc(href="https://twitter.com/apacheignite", target="_blank")
                    img(src="/img/icon-twitter.svg", alt="")
                a.footer4__soc(href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/", target="_blank")
                    img(src="/img/icon-meetup-black.png", alt="")
            a.footer4__button(href="https://ignite.apache.org/docs/latest/index").button Start Using Apache Ignite 
    .container.footer__bot
        p © 2015 - 2022 <a href="http://www.apache.org/">The Apache Software Foundation.</a>
        p.pt-1x Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation
        p.pt-1x
            a(href="http://apache.org/foundation/policies/privacy.html") Privacy Policy