Set Spring Session version to 2.1.6.BUILD-SNAPSHOT. Set version to 2.1.4.BUILD-SNAPSHOT. Edit README and set doc and Javadoc URL link versions to 2.1.3.RELEASE.
81 lines
6.0 KiB
Plaintext
81 lines
6.0 KiB
Plaintext
image:https://badges.gitter.im/spring-projects/spring-session.svg[link="https://gitter.im/spring-projects/spring-session?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
|
|
|
|
image:https://travis-ci.org/spring-projects/spring-session.svg?branch=master["Build Status", link="https://travis-ci.org/spring-projects/spring-session-data-geode"]
|
|
|
|
= Spring Session for Apache Geode & Pivotal GemFire
|
|
|
|
_Spring Session_ core provides an API along with several provider implementations to manage user sessions. It also
|
|
simplifies the support for clustered session state management without being tied to an application container
|
|
specific solution.
|
|
|
|
Out of the box _Spring Session_ provides integration with:
|
|
|
|
* `HttpSession` - replaces the `HttpSession` supplied by the application container (e.g. Apache Tomcat)
|
|
in a neutral way along with providing HTTP Session IDs in the HTTP Header to work with REST APIs.
|
|
|
|
* `WebSocket` - keeps the `HttpSession` active when receiving WebSocket messages.
|
|
|
|
On top of the core _Spring Session_ features, _Spring Session for Apache Geode and Pivotal GemFire_ (SSDG) positions
|
|
either https://geode.apache.org/[Apache Geode] or https://pivotal.io/pivotal-gemfire[Pivotal GemFire]
|
|
as a session repository provider and adds additional capabilities required by enterprise class solutions:
|
|
|
|
* Custom `Expiration Policies` - in addition to the default, 30 minute session _idle expiration timeout_ (TTI), which
|
|
is configurable, SSDG also supports _fixed-duration expiration timeout_ (e.g. expire the session after 1 hour
|
|
regardless of whether the session is active or inactive). Users may also define custom expiration policies using the
|
|
https://docs.spring.io/autorepo/docs/spring-session-data-geode-build/2.1.1.RELEASE/api/org/springframework/session/data/gemfire/expiration/SessionExpirationPolicy.html[`SessionExpirationPolicy`] interface.
|
|
See the https://docs.spring.io/autorepo/docs/spring-session-data-geode-build/2.1.1.RELEASE/reference/html5/#httpsession-gemfire-expiration[documentation] for more details.
|
|
|
|
* Custom `Data Serialization` - in addition to the default Apache Geode https://geode.apache.org/docs/guide/18/developing/data_serialization/gemfire_pdx_serialization.html[PDX Serialization] format,
|
|
users may configure Apache Geode https://geode.apache.org/docs/guide/18/developing/data_serialization/gemfire_data_serialization.html[Data Serialization]
|
|
with full support for https://geode.apache.org/docs/guide/18/developing/delta_propagation/chapter_overview.html[Delta Propagation].
|
|
While _race conditions_ between competing HTTP requests (accessing the same HTTP Session) cannot be completely avoided with
|
|
any session provider, sending only the delta (or changes) minimizes the chance of _lost updates_, especially in a highly clustered
|
|
Web environment. By using PDX Serialization, your HTTP Session state is immediately transferable across environments, from non-managed,
|
|
standalone environments to managed environments, like https://pivotal.io/platform[Pivotal Cloud Foundry (PCF)]
|
|
using https://pivotal.io/platform/services-marketplace/data-management/pivotal-cloud-cache[Pivotal Cloud Cache (PCC)].
|
|
|
|
* Custom `Change Detection` - while most session implementations consider the session to be dirty anytime anything is written
|
|
to the session, even when your application domain objects stored in the session have not changed, SSDG will intelligently
|
|
determine whether there is anything to send before writing it to the wire. OOTB, SSDG will look at any application domain objects
|
|
that implement Apache Geode's https://geode.apache.org/releases/latest/javadoc/org/apache/geode/Delta.html[Delta] interface
|
|
and use that to determine if your application domain objects are indeed dirty before sending the delta. If your objects do not
|
|
implement the `Delta` interface, or the object is not the same, then it functions like all other Spring Session providers.
|
|
If you prefer, you may specify your own rules composed with the `IsDirtyPredicate` strategy interface.
|
|
|
|
* Powerful `Pub/Sub` - Apache Geode and Pivotal GemFire both provide a very powerful and robust client/server
|
|
https://geode.apache.org/docs/guide/18/developing/events/chapter_overview.html[event distribution and handling sub-system]
|
|
leveraged by SSDG in order to reliably manage session state, especially in a distributed/clustered environment.
|
|
|
|
These and many more Apache Geode or Pivotal GemFire features may be leveraged in your application environment to
|
|
achieve resilient, highly available (HA), durable, consistent, and even multi-clustered (WAN), persistent
|
|
session statement management.
|
|
|
|
The best part, SSDG allows you to use either Apache Geode or Pivotal GemFire interchangeably without having to change
|
|
a single line of code. Simply change your dependency from `org.springframework.session:spring-session-data-geode`
|
|
to `org.springframework.session:spring-session-data-gemfire`, or vice versa, and you can seemlessly move between
|
|
either Apache Geode or Pivotal GemFire, or even PCC.
|
|
|
|
No other Spring Session provider offers you the same type of flexibility and power in 1 solution, especially as
|
|
your requirements and UC change (e.g. from simple session caching to a full on _System of Record_ with
|
|
_distributed compute_ and _streaming capabilities_).
|
|
|
|
== Code of Conduct
|
|
|
|
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct].
|
|
By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.
|
|
|
|
== Documentation
|
|
|
|
Documentation for _Spring Session for Apache Geode and Pivotal GemFire_ can be found
|
|
https://docs.spring.io/autorepo/docs/spring-session-data-geode-build/2.1.3.RELEASE/reference/html5/[here]
|
|
and Javadoc is available https://docs.spring.io/autorepo/docs/spring-session-data-geode-build/2.1.3.RELEASE/api/[here].
|
|
|
|
= Spring Session Project Site
|
|
|
|
You can find the documentation, issue management, support, samples, and guides for using _Spring Session_
|
|
at https://projects.spring.io/spring-session/
|
|
|
|
= License
|
|
|
|
_Spring Session_ is Open Source Software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].
|