> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage data

Data moves in and out of Domino executions in the following ways:

[Domino Volumes for NetApp ONTAP](/cloud/admin/data-administration/netapp-volumes)\
Domino Volumes for NetApp ONTAP (NetApp Volumes) let Domino practitioners share data more easily across projects by storing files on external NetApp-backed storage. They enhance performance, eliminate duplication, and provide snapshot-based recovery.

[Data Sources](/cloud/admin/data-administration/external-data)\
User code that runs in Domino can use Domino Data Sources or third-party drivers to interact with external databases, APIs, and file systems to which the Domino-hosting cluster can connect. Users can read and write from these external systems, and they can import data into Domino from such systems by saving files to their project [writing files to an output Dataset](/cloud/platform-capabilities/core-concepts/data/datasets/local-data).

[External Data Volumes](/cloud/admin/data-administration/external-data/external-data-volumes)\
External Data Volumes (EDVs) mount remote file systems into executions, so users read and write files on storage that Domino does not own.

[Domino Datasets](/cloud/admin/data-administration/datasets)\
You can configure Domino executions to mount [Domino datasets](/cloud/platform-capabilities/core-concepts/data/datasets/create-and-manage-datasets) for input and output. Datasets are network volumes mounted in the execution environment. Mounting an input Dataset lets executions start quickly. It also gives them access to large quantities of data because the data is not transferred to the local execution volume until user code performs read operations from the mounted volume. Any data written to an output Dataset is saved by Domino as a new snapshot.

[Domino Project file storage](/cloud/admin/data-administration/project-file-storage)\
Every execution occurs in a [Project](/cloud/platform-capabilities/core-concepts/projects). Based on the [Domino File System](/cloud/platform-capabilities/core-concepts/projects/dfs-projects#the-working-directory), the files for the active revision of the project are automatically loaded into the local execution volume for a Job or Workspace. These files are retrieved from the [Domino File Store](/cloud/admin/data-administration/project-file-storage), and any changes to these files are written back to the Domino File Store as a new revision of the project’s files.

The following diagram shows the series of operations that happens when a user starts an execution (Job or Workspace) in Domino, and illustrates when and how various data systems can be used.

```mermaid placement="top-right" theme={null}
%%{init: {"flowchart": {"wrappingWidth": 300}}}%%
flowchart TB
  accTitle: The Domino execution data flow
  accDescr: A browser or API launches a Job or Workspace in Domino. Domino builds an execution pod specification holding the user environment, the executor utility, and the HTTP(S) interface, pulled from the Docker registry. Kubernetes schedules the pod onto the target node pool. The running pod syncs project files with the Domino File Store, mounts Domino Datasets, and reads and writes external data.
  browser["Browser"]
  apiclient["API"]
  domino["Domino"]
  registry[("Docker registry")]
  pod["Execution pod specification<br/>user environment<br/>executor utility<br/>HTTP(S) interface"]
  k8s["Kubernetes"]

  subgraph pool["Target node pool, labeled dominodatalab.com/node-pool: default"]
    podx["Execution pod X"]
    pody["Other execution pods"]
  end

  filestore[("Domino File Store")]
  datasets[("Domino Datasets")]
  extdata[("External data")]

  browser -->|1 launch| domino
  apiclient -->|1 launch| domino
  domino -->|2 pod specification| pod
  registry -->|2 container images| pod
  pod -->|3 schedule| k8s
  k8s --> podx
  k8s --> pody
  podx <-->|4 sync| filestore
  podx <-->|4 mount| datasets
  podx <-->|5 read and write| extdata
```

The numbers on the diagram's arrows match these steps:

<Steps>
  <Step title="A client launches the execution">
    A client launches a Job or Workspace from the Domino application. The operation is scoped to a specific project, environment, and hardware tier.
  </Step>

  <Step title="Domino builds the pod specification">
    Domino constructs a specification for an execution pod from the user's input. The pod holds containers for the user environment, the executor utility, and the HTTP(S) interface, all pulled from the Docker registry.
  </Step>

  <Step title="Kubernetes schedules the pod">
    Domino brokers assignment of the execution pod to Kubernetes with the node label and resource requests the user chose. An ephemeral execution volume is attached to the target node and mounted in the pod.
  </Step>

  <Step title="The executor utility syncs project files and Datasets">
    The executor utility pulls project files from the Domino File Store into the execution volume mounted in the user environment. Datasets are attached as a network file system. When the Job or Workspace syncs, Domino writes changes back to these stores.
  </Step>

  <Step title="User code reaches external data">
    User code that runs inside the Workspace or Job can read and write external databases, APIs, and file systems.
  </Step>
</Steps>

For quick tips to troubleshoot issues with data in Domino, see [Troubleshoot data issues](/cloud/admin/data-administration/troubleshoot-data).


## Related topics

- [Manage Data Sources](/cloud/admin/data-administration/external-data/index.md)
- [Data Planes](/cloud/platform-capabilities/core-concepts/data-plane.md)
- [Manage External Data Volumes](/cloud/admin/data-administration/external-data/external-data-volumes/index.md)
- [Create and manage Datasets](/cloud/platform-capabilities/core-concepts/data/datasets/create-and-manage-datasets.md)
