--- title: Software Components description: The Ocean Protocol network is brought to life by many interacting symbiotic software components. --- Before reading this page, you should understand some [Ocean-specific terminology](/concepts/terminology/). ## Aquarius Aquarius provides an API to an off-chain database ("OceanDB") to store and manage metadata about data assets: the assets listed in that marketplace. Every marketplace must run an instance of Aquarius. The off-chain database might be MongoDB, Elasticsearch or BigchainDB. ## Brizo Publishers run Brizo to manage access control to assets on behalf of asset owners or data service providers. ## Keeper A computer running a blockchain client (such as [Parity Ethereum](https://www.parity.io/ethereum/)) where the associated blockchain network is running the Ocean Protocol [💧 keeper-contracts](https://github.com/oceanprotocol/keeper-contracts) (smart contracts). See also: [Set Up a Keeper](/setup/keeper/) ## Pleuston An example marketplace front-end for consumers to explore, download, and publish data assets within the Ocean Protocol network. Implemented using [React](https://reactjs.org/) and [🦑 squid-js](https://github.com/oceanprotocol/squid-js). ## Squid Libraries Client libraries used by applications (such as Pleuston or Jupyter notebooks) to interact with Ocean components, including Keepers, Aquarius nodes, Brizo nodes, etc. ![How Squid is Used](images/Squid_role_diagram_small.jpg) ## OceanDB Drivers OceanDB is an off-chain database(?) for storing metadata about data assets. These drivers are extended from a high-level module implementing OceanDB functions. You can create your own plugins based on its abstracted interface: ## Secret Store A [Parity Secret Store](https://wiki.parity.io/Secret-Store): software for distributed key pair generation, distributed key storage, and threshold retrieval. It's used to store asset access-control keys. We have created multiple clients for integrating the Parity Secret Store into Ocean: