Application logic
Application logic is implemented as Java classes. This includes classes for representing the various containers (such as projects) and content types (such as documents), as well as managers for handling them, data access objects for interacting with the database, and classes to support services such as web services, feeds.
Developers can learn more about the classes exposed as part of the API by taking at look at the Javadoc API at https://developers.jivesoftware.com.
Dependency configuration
Java classes rely on many classes and libraries provided either by Jive or by third parties. These dependencies are resolved at run time by using a model called inversion of control, or IOC. IOC is supported by the Spring framework. Through the Spring framework, developers can replace default dependencies with their own implementations. For example, a developer could replace a particular security framework with their own.
Spring is an open source framework. For more information, see Spring framework portal at https://spring.io/.
Search
People can search for content, of course. The search feature can also be configured to search external content sources. An administrator determines which content should be available for external searches.
For searches of content inside the community, the application uses the Elastic search engine. For more information Elastic search service, see https://www.elastic.co/. For more information about Jive Search services, see Understanding Jive Search.
When searching content outside the community, the application uses OpenSearch. Other applications that expose their search engines via OpenSearch can be included in community searches by an administrator.
Caching
Caching is provided by Cash server, including Cash and Voldemort Cash components.
Clustering
jgroups provides clustering subsystems.