# Package org.apache.ignite.spi

Contains common classes and interfaces for SPI implementations.

- Interface Summary
  Interface | Description
  --- | ---
  IgniteSpi | This interface defines life-cycle of SPI implementation.
  IgniteSpiCloseableIterator<T> | Closeable iterator.
  IgniteSpiContext | SPI context provides common functionality for all SPI implementations.
  IgniteSpiManagementMBean | This interface defines basic MBean for all SPI implementations.
  IgniteSpiTimeoutObject | Provides possibility to schedule delayed execution, see `IgniteSpiContext.addTimeoutObject(IgniteSpiTimeoutObject)`.
  TimeoutStrategy | Strategy to calculate next timeout and check if total timeout reached.

- Class Summary
  Class | Description
  --- | ---
  ExponentialBackoffTimeoutStrategy | Strategy which incorporates retriable network operation, handling of totalTimeout logic.
  IgniteNodeValidationResult | Result of joining node validation.
  IgniteSpiAdapter | This class provides convenient adapter for SPI implementations.
  IgniteSpiMBeanAdapter | This class provides convenient adapter for MBean implementations.
  IgniteSpiOperationTimeoutHelper | Object that incorporates logic that determines a timeout value for the next network related operation and checks whether a failure detection timeout is reached or not.
  IgniteSpiThread | This class provides convenient adapter for threads used by SPIs.
  IgniteSpiThreadFactory | This class provides implementation of `ThreadFactory` factory for creating grid SPI threads.

- Enum Summary
  Enum | Description
  --- | ---
  IgnitePortProtocol | Protocols supported by port processor.

- Exception Summary
  Exception | Description
  --- | ---
  IgniteSpiException | Exception thrown by SPI implementations.
  IgniteSpiMultiException | Grid SPI exception which may contain more than one failure.
  IgniteSpiOperationTimeoutException | Kind of exception that is used when failure detection timeout is enabled for `TcpDiscoverySpi` or `TcpCommunicationSpi`.
  IgniteSpiVersionCheckException | Grid SPI exception for version check failure.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  IgniteSpiConfiguration | Annotates SPI configuration setters on whether or not it is optional.
  IgniteSpiConsistencyChecked | SPIs that have this annotation present will be checked for consistency within grid.
  IgniteSpiMultipleInstancesSupport | Annotates whether or not multiple instances of this SPI can be started in the same VM.
  IgniteSpiNoop | Annotates `NO-OP` SPI implementations.