= Ignite Cache Component
:doctitle: Ignite Cache
:shortname: ignite-cache
:artifactid: camel-ignite
:description: Perform cache operations on an Ignite cache or consume changes from a continuous query.
:since: 2.17
:supportlevel: Stable
:component-header: Both producer and consumer are supported
//Manually maintained attributes
:group: Ignite
:camel-spring-boot-name: ignite

*Since Camel {since}*

*{component-header}*

The Ignite Cache endpoint is one of camel-ignite endpoints which allows you to interact with an https://apacheignite.readme.io/docs/data-grid[Ignite Cache].
This offers both a Producer (to invoke cache operations on an Ignite cache) and a Consumer (to consume changes from a continuous query).

The cache value is always the body of the message, whereas the cache key is always stored in the `IgniteConstants.IGNITE_CACHE_KEY` message header.

Even if you configure a fixed operation in the endpoint URI, you can vary it per-exchange by setting the `IgniteConstants.IGNITE_CACHE_OPERATION` message header.

// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END



== Headers used

This endpoint uses the following headers:
[width="100%",cols="1,1,1,4",options="header"]
|=======================================================================
| Header name | Constant | Expected type | Description
| CamelIgniteCacheKey | IgniteConstants.IGNITE_CACHE_KEY | String |
The cache key for the entry value in the message body.

| CamelIgniteCacheQuery | IgniteConstants.IGNITE_CACHE_QUERY | Query |
The query to run (producer) when invoking the QUERY operation.

| CamelIgniteCacheOperation | IgniteConstants.IGNITE_CACHE_OPERATION | IgniteCacheOperation enum |
Allows you to dynamically change the cache operation to execute (producer).

| CamelIgniteCachePeekMode | IgniteConstants.IGNITE_CACHE_PEEK_MODE | CachePeekMode enum |
Allows you to dynamically change the cache peek mode when running the SIZE operation.

| CamelIgniteCacheEventType | IgniteConstants.IGNITE_CACHE_EVENT_TYPE | int (EventType constants) |
This header carries the received event type when using the continuous query consumer.

| CamelIgniteCacheName | IgniteConstants.IGNITE_CACHE_NAME | String |
This header carries the cache name for which a continuous query event was received (consumer).
It does not allow you to dynamically change the cache against which a producer operation is performed. Use EIPs for that (e.g. recipient list, dynamic router).

| CamelIgniteCacheOldValue | IgniteConstants.IGNITE_CACHE_OLD_VALUE | Object |
This header carries the old cache value when passed in the incoming cache event (consumer).
|=======================================================================


include::spring-boot:partial$starter.adoc[]
