spring-geode/src/main/java/org/springframework/geode/cache/RepositoryAsyncEventListener.java
/**
		 * Processes the given {@link AsyncEvent} by first determining whether the event can be processed by this
		 * {@link Function}, and then proceeds to extract the {@link AsyncEvent#getDeserializedValue() entity}
		 * associated with the event to invoke the appropriate Spring Data {@link CrudRepository} data access operation
		 * determined by the {@link AsyncEvent} {@link Operation}.
		 *
		 * If an {@link Throwable error} is thrown while processing the {@link AsyncEvent}, then the
		 * {@link AsyncEventErrorHandler} is called to handle the error and perform any necessary/required
		 * post-processing actions.
		 *
		 * {@link AsyncEventErrorHandler} can be implemented to retry the operation with incremental backoff, based on
		 * count or time, record the failure, perform resource cleanup actions, whatever is necessary and appropriate
		 * to the application use case.
		 *
		 * @param event {@link AsyncEvent} to process.
		 * @return a boolean value indicating whether the event was successfully processed.
		 * @throws IllegalStateException if the resolve entity is {@literal null}.
		 * @see org.apache.geode.cache.asyncqueue.AsyncEvent
		 * @see AsyncEventErrorHandler
		 * @see #canProcess(AsyncEvent)
		 * @see #doRepositoryOp(Object)
		 * @see #resolveEntity(AsyncEvent)
		 * @see #getErrorHandler()
		 */
Processes the given  AsyncEvent by first determining whether the event can be processed by this
Function, and then proceeds to extract the  AsyncEvent#getDeserializedValue() entity
associated with the event to invoke the appropriate Spring Data  CrudRepository data access operation
determined by the  AsyncEvent  Operation.

If an  Throwable error is thrown while processing the  AsyncEvent, then the
AsyncEventErrorHandler is called to handle the error and perform any necessary/required
post-processing actions.

AsyncEventErrorHandler can be implemented to retry the operation with incremental backoff, based on
count or time, record the failure, perform resource cleanup actions, whatever is necessary and appropriate
to the application use case.

@param event  AsyncEvent to process.
@return a boolean value indicating whether the event was successfully processed.
@throws IllegalStateException if the resolve entity is  null.
Processes the given AsyncEvent by first determining whether the event can be processed by this Function and then proceeds to extract the AsyncEvent#getDeserializedValue () entity associated with the event to invoke the appropriate Spring Data CrudRepository data access operation determined by the AsyncEvent Operation . If an Throwable error is thrown while processing the AsyncEvent then the AsyncEventErrorHandler is called to handle the error and perform any necessary / required post - processing actions . AsyncEventErrorHandler can be implemented to retry the operation with incremental backoff based on count or time record the failure perform resource cleanup actions whatever is necessary and appropriate to the application use case . @param event AsyncEvent to process . @return a boolean value indicating whether the event was successfully processed . @throws IllegalStateException if the resolve entity is null .
@Override
		public Boolean apply(@Nullable AsyncEvent<ID, T> event) {
			try {
				if (canProcess(event)) {
					T entity = resolveEntity(event);
					doRepositoryOp(entity);
					return true;
				}
				return false;
			}
			catch (Throwable cause) {
				return getErrorHandler().apply(new AsyncEventError(event, cause));
			}
		}
@ Override public Boolean apply ( @ Nullable AsyncEvent < ID , T > event ) { try { if ( canProcess ( event ) ) { T entity = resolveEntity ( event ) ; doRepositoryOp ( entity ) ; return true ; } return false ; } catch ( Throwable cause ) { return getErrorHandler ( ) . apply ( new AsyncEventError ( event , cause ) ) ; } }
Processes the given {@link AsyncEvent} by first determining whether the event can be processed by this
 {@link Function}, and then proceeds to extract the {@link AsyncEvent#getDeserializedValue() entity}
 associated with the event to invoke the appropriate Spring Data {@link CrudRepository} data access operation
 determined by the {@link AsyncEvent} {@link Operation}.
Processes the given { @link AsyncEvent } by first determining whether the event can be processed by this { @link Function } and then proceeds to extract the { @link AsyncEvent#getDeserializedValue () entity } associated with the event to invoke the appropriate Spring Data { @link CrudRepository } data access operation determined by the { @link AsyncEvent } { @link Operation } .