# Workspaces and persistent storage

A **workspace** is an isolated compute environment. It owns three things that matter to you daily:
persistent storage, installed libraries, and a resource allocation.

## What isolation means

Two workspaces in the same [organization](/glossary/organization) do not share storage or installed packages. A library
installed in one is absent from the other; a file written in one is invisible to the other.

That isolation is what lets one organization run separate projects, or separate production and
experimental environments, without either interfering with the other.

## Persistent storage

Files in the workspace tree survive between sessions. This is where your work belongs.

```python
# Persists: the workspace tree
df.to_parquet("/workspace/results/run-2026-08-30.parquet")

# Does NOT persist: session-local
df.to_parquet("/tmp/results.parquet")
```

The failure mode is an afternoon of output written to `/tmp`, gone after a restart. It happens to
everyone once.

:::warning Local disk is not shared with the cluster
Workspace storage is visible to your session. Data that many workers need should be in **object
storage**, which every [compute node](/glossary/compute-node) can reach. A path that works in your [notebook](/glossary/notebook) is not
automatically a path a worker can read.
:::

## Where data should live

| Data | Where | Why |
| --- | --- | --- |
| Notebooks, scripts | Workspace tree | Persists, and only your session needs it |
| Small reference files | Workspace tree | Convenient, and cheap to copy into tasks |
| Large inputs read by workers | Object storage | Every node can reach it in parallel |
| Run outputs | Object storage | Durable, and readable outside the workspace |

## Libraries

The scientific Python stack comes preinstalled: NumPy, pandas, SciPy, scikit-learn, PyTorch, plus
common geospatial and imaging libraries.

For anything else:

```python
%pip install some-package
```

Install into the **workspace** for something the whole team needs. Installing into each person's
session means every new session pays the setup cost again, and environments quietly diverge.

:::warning Not supported
TensorFlow, spaCy, and JAX are not supported on Eugo. Plan around PyTorch.
:::

## Resource allocation

A workspace's limits come from its **pricing plan**. The plan governs concurrency as well as
capacity: how much can run *at once*, not only how much total.

That distinction bites as a team grows. Ten people on a plan sized for two will queue, and the symptom
looks like slowness rather than a limit.

## Choosing the boundary

Workspaces get split per team, per project, or per environment. Decide which before you create
things, because storage and limits follow the boundary, and moving later means moving data. The
[workspace setup checklist](/resources/workspace-setup-checklist) walks through the decision in
order.

---

Source: https://university.eugo.io/lesson/eugo-101/workspaces
