# Enyim.Caching

**Kind:** Service

**Source:** `Pams/Logic/Pams.Business/Pams.Business.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

Enyim.Caching is a NuGet package dependency declared by `Pams.Business.csproj`. The `Pams.Business` project uses the package to read and write cached application data during business-layer operations.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant Business as Pams.Business
    participant Cache as Enyim.Caching

    Client->>Business: Request data
    Business->>Cache: Read cache key
    Cache-->>Business: Cached value or cache miss
    Business-->>Client: Return response
```

## Usage

```ts
// JavaScript clients interact with cache-backed business operations
// through the application's HTTP API.

async function getCustomer(customerId: string) {
  const response = await fetch(`/api/customers/${customerId}`);

  if (!response.ok) {
    throw new Error(`Customer request failed: ${response.status}`);
  }

  return response.json();
}

const customer = await getCustomer("customer-42");
console.log(customer);
```

## AI Coding Instructions

- Keep `Enyim.Caching` references within the `Pams.Business` dependency and configuration pattern.
- Treat cache misses as normal flow; load the required data from the business data source when no cached value exists.
- Use stable, scoped cache keys so unrelated business entities do not share entries.
- Review cache configuration when changing the project file or package version.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `Pams.Business` — `Pams/Logic/Pams.Business/Pams.Business.csproj`:1
