Developing with Apache Geode
Developing with Apache Geode explains main concepts of application programming with Apache Geode. It describes how to plan and implement regions, data serialization, event handling, delta propagation, transactions, and more.
For information about Geode REST application development, see Developing REST Applications for Apache Geode.
The Apache Geode data storage and distribution models put your data in the right place at the right time. You should understand all the options for data storage in Geode before you start configuring your data regions.
In addition to basic region management, partitioned regions include options for high availability, data location control, and data balancing across the distributed system.
In addition to basic region management, distributed and replicated regions include options for things like push and pull distribution models, global locking, and region entry versions to ensure consistency across Geode members.
Geode ensures that all copies of a region eventually reach a consistent state on all members and clients that host the region, including Geode members that distribute region events.
For all regions, you have options to control memory use, back up your data to disk, and keep stale data out of your cache.
Data that you manage in Geode must be serialized and deserialized for storage and transmittal between processes. You can choose among several options for data serialization.
Geode provides versatile and reliable event distribution and handling for your cached data and system member events.
Delta propagation allows you to reduce the amount of data you send over the network by including only changes to objects rather than the entire object.
Geode provides a SQL-like querying language called OQL that allows you to access data stored in Geode regions.
Continuous querying continuously returns events that match the queries you set up.
Geode provides a transactions API, with
rollbackmethods. These methods are much the same as the familiar relational database transactions methods.
A function is a body of code that resides on a server and that an application can invoke from a client or from another server without the need to send the function code itself. The caller can direct a data-dependent function to operate on a particular dataset, or can direct a data-independent function to operate on a particular server, member, or member group.