Apache Geode is a mature and robust in-memory data management platform. If you don’t know what that is, think of a high performance database on steroids – one that can run exclusively in system memory. Suffice to say that it’s incredibly fast, efficient at what it does and provides improved performance to any distributed system.
Apache Geode began as the open source version of a product called GemFire, originally developed by GemStone Systems. GemFire found its first industrial application decades ago as a low latency transactional data engine for Wall Street trading. In May of 2010, GemStone was acquired by SpringSource. Not long after it became a key part of Pivotal. Shortly thereafter in 2015, Pivotal proposed the creation of the Apache Geode incubating community to the Apache Software Foundation (ASF) to help foster its development – and foster it did. The community support surrounding the project blossomed, making it a top-level Apache project by the end of 2016. The Geode community now publishes a new GitHub branch release quarterly, specifically the first Monday on or after February 1st, May 1st, August 1st and November 1st. Today, Spring Boot for Apache Geode and Pivotal GemFire provides any client with the convenience of Spring Boot’s “convention over configuration “approach using auto-configuration with the Spring Framework’s powerful abstractions and highly consistent programming model.
To do what it does, Apache Geode pools memory, CPU, network resources and even local disk to provide Apache Geode applications with very low latency performance environments as well as high availability, elastic scalability, monitoring and fault tolerance. It also provides very reliable asynchronous event notifications and guaranteed message delivery to facilitate high concurrency processing.
Apache Geode enables dynamic replication between nodes allowing performance to scale as needed. A client can stay up to date by registering OQL continuous queries with a Geode server, making event-driven applications possible. Overall, Geode has nearly unlimited potential in the development and enhancement of data-driven applications thanks to its persistence.
The typical application objects that comprise a Geode cluster include a database and data grid. These pieces can in some cases help to form a reliable transaction processing app for purchasing stocks, airline tickets, concert tickets, etc. Geode is also great for multiple processes behind event-driven or reactive applications, such as pushing event notifications to a client and subsequent processing. It’s frequently used on the backend as the data exchange layer in big data analytics projects, for real-time financial risk assessment and to improve real-time decision making in complex scheduling applications, such as airline staffing and booking.
Any developer or user who wishes to support the Apache Geode community is welcome to contribute code additions, bug fixes, documentation, wiki support, best practices and website updates. To join the mailing list, visit: https://geode.apache.org/community.
If you wish to dig deeper into the underlying technology and metrics of Apache Geode and learn how it does what it does, refer to the following video: “Breaking Open Apache Geode: How It Works and Why”