iRODS 4.0+ represents a major effort to analyze, harden, and package iRODS for sustainability, modularization, security, and testability. This has led to a fairly significant refactorization of much of the underlying codebase. The following descriptions are included to help explain the architecture of iRODS.

The core is designed to be as immutable as possible and serve as a bus for handling the internal logic of the business of iRODS (data storage, policy enforcement, etc.). Seven interfaces are exposed by the core and allow extensibility and separation of functionality into plugins. A few plugins are included by default in an iRODS distribution to provide a set of base functionality.

The defined plugin interfaces are listed here:

Plugin Interface Status Since
Pluggable Microservices Complete 3.0b2
Composable Resources Complete 3.0b3
Pluggable Authentication Complete 3.0.1b1
Pluggable Network Complete 3.0.1b1
Pluggable Database Complete 4.0.0b1
Pluggable RPC API Complete 4.0.0b2
Pluggable Rule Engine Complete 4.2.0