# sap-archive/cloud-cap-samples architecture

> Architecture diagram of the GitHub repository sap-archive/cloud-cap-samples, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sap-archive/cloud-cap-samples
- Repository: https://github.com/sap-archive/cloud-cap-samples

## Overview

This archived CAP sample monorepo demonstrates several connected business applications rather than one single end-user product. A principal workflow is browsing books, submitting an order, reducing book stock, and propagating order/review events into the orders and reviews domains. Separate samples cover author/book administration, review interactions, order management, and runtime data inspection. The graph reflects the sampled handlers and explicit mashup wiring; several UI-to-service links and unsampled service internals are intentionally left out.

Main entry points: [`bookstore/srv/mashup.js`](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookstore/srv/mashup.js) (Mashup Wiring), [`inspectr/srv/data-service.js`](https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/srv/data-service.js) (Connected Services), [`orders/srv/orders-service.js`](https://github.com/sap-archive/cloud-cap-samples/blob/main/orders/srv/orders-service.js) (Orders Service), [`reviews/srv/reviews-service.js`](https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/srv/reviews-service.js) (Reviews Service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bookshop["Bookshop"]
  node_bookshop_ui["Bookshop UI<br/>[app.js]"]
  node_catalog["Catalog Service<br/>[cat-service.js]"]
  node_admin["Admin Service<br/>[admin-service.js]"]
  node_user["User Service<br/>[user-service.js]"]
  node_bookshop_db[("Bookshop Store<br/>[schema.cds]")]
end

subgraph group_store["Bookstore Mashup"]
  node_store_ui["Bookstore Apps"]
  node_mashup["Mashup Wiring<br/>[mashup.js]"]
end

subgraph group_domains["Orders And Reviews"]
  node_orders_ui["Orders UI"]
  node_orders_service["Orders Service<br/>[orders-service.js]"]
  node_orders_db[("Orders Store<br/>[schema.cds]")]
  node_reviews_ui["Reviews UI<br/>[app.js]"]
  node_reviews_service["Reviews Service<br/>[reviews-service.js]"]
  node_reviews_db[("Reviews Store<br/>[schema.cds]")]
end

subgraph group_tools["Runtime Tools"]
  node_inspector_ui["Data Viewer<br/>[app.js]"]
  node_data_service["Data Service<br/>[data-service.js]"]
  node_cap_runtime["Connected Services<br/>[data-service.js]"]
  node_loggers_service["Loggers Sample<br/>[loggers.js]"]
end

subgraph group_models["Shared Models"]
  node_common_model["Common Model<br/>[index.cds]"]
  node_shared_db[("Shared Schema<br/>[schema.cds]")]
end

node_shopper(("Shopper"))
node_external_services["External Services"]

node_shopper -->|"uses"| node_bookshop_ui
node_bookshop_ui -->|"requests catalog"| node_catalog
node_bookshop_ui -->|"checks identity"| node_user
node_catalog -->|"reads and updates"| node_bookshop_db
node_admin -->|"generates IDs"| node_bookshop_db
node_catalog -->|"emits order event"| node_mashup
node_store_ui -->|"served by"| node_mashup
node_mashup -->|"connects to"| node_catalog
node_mashup -->|"connects to"| node_reviews_service
node_mashup -->|"connects to"| node_orders_service
node_mashup -->|"reads and updates"| node_bookshop_db
node_mashup -->|"reads reviews"| node_reviews_service
node_mashup -->|"creates orders"| node_orders_service
node_orders_ui -.->|"manages orders"| node_orders_service
node_orders_service -->|"reads items"| node_orders_db
node_orders_service -->|"emits order changes"| node_mashup
node_reviews_ui -->|"manages reviews"| node_reviews_service
node_reviews_service -->|"reads and updates"| node_reviews_db
node_reviews_service -->|"emits rating updates"| node_mashup
node_inspector_ui -->|"queries metadata and data"| node_data_service
node_data_service -->|"selects source"| node_cap_runtime
node_cap_runtime -.->|"queries services"| node_external_services
node_cap_runtime -->|"queries database"| node_bookshop_db
node_cap_runtime -.->|"queries database"| node_orders_db
node_cap_runtime -.->|"queries database"| node_reviews_db
node_mashup -->|"creates order records"| node_orders_db

click node_bookshop_ui "https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/app/vue/app.js"
click node_catalog "https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/srv/cat-service.js"
click node_admin "https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/srv/admin-service.js"
click node_user "https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/srv/user-service.js"
click node_bookshop_db "https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/db/schema.cds"
click node_store_ui "https://github.com/sap-archive/cloud-cap-samples/tree/main/bookstore/app"
click node_mashup "https://github.com/sap-archive/cloud-cap-samples/blob/main/bookstore/srv/mashup.js"
click node_orders_ui "https://github.com/sap-archive/cloud-cap-samples/tree/main/orders/app/orders"
click node_orders_service "https://github.com/sap-archive/cloud-cap-samples/blob/main/orders/srv/orders-service.js"
click node_orders_db "https://github.com/sap-archive/cloud-cap-samples/blob/main/orders/db/schema.cds"
click node_reviews_ui "https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/app/vue/app.js"
click node_reviews_service "https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/srv/reviews-service.js"
click node_reviews_db "https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/db/schema.cds"
click node_inspector_ui "https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/app/viewer/app.js"
click node_data_service "https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/srv/data-service.js"
click node_cap_runtime "https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/srv/data-service.js"
click node_loggers_service "https://github.com/sap-archive/cloud-cap-samples/blob/main/loggers/srv/loggers.js"
click node_common_model "https://github.com/sap-archive/cloud-cap-samples/blob/main/common/index.cds"
click node_shared_db "https://github.com/sap-archive/cloud-cap-samples/blob/main/shared-db/db/schema.cds"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_bookshop_ui,node_catalog,node_admin,node_user,node_bookshop_db toneBlue
class node_store_ui,node_mashup toneAmber
class node_orders_ui,node_orders_service,node_orders_db,node_reviews_ui,node_reviews_service,node_reviews_db toneMint
class node_inspector_ui,node_data_service,node_cap_runtime,node_loggers_service toneRose
class node_common_model,node_shared_db,node_shopper,node_external_services toneIndigo
```

## Components

### Bookshop

- [Bookshop UI](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/app/vue/app.js): `bookshop/app/vue/app.js`
- [Catalog Service](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/srv/cat-service.js): `bookshop/srv/cat-service.js`
- [Admin Service](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/srv/admin-service.js): `bookshop/srv/admin-service.js`
- [User Service](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/srv/user-service.js): `bookshop/srv/user-service.js`
- [Bookshop Store](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookshop/db/schema.cds): `bookshop/db/schema.cds`

### Bookstore Mashup

- [Bookstore Apps](https://github.com/sap-archive/cloud-cap-samples/tree/main/bookstore/app): `bookstore/app`
- [Mashup Wiring](https://github.com/sap-archive/cloud-cap-samples/blob/main/bookstore/srv/mashup.js): `bookstore/srv/mashup.js`

### Orders And Reviews

- [Orders UI](https://github.com/sap-archive/cloud-cap-samples/tree/main/orders/app/orders): `orders/app/orders`
- [Orders Service](https://github.com/sap-archive/cloud-cap-samples/blob/main/orders/srv/orders-service.js): `orders/srv/orders-service.js`
- [Orders Store](https://github.com/sap-archive/cloud-cap-samples/blob/main/orders/db/schema.cds): `orders/db/schema.cds`
- [Reviews UI](https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/app/vue/app.js): `reviews/app/vue/app.js`
- [Reviews Service](https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/srv/reviews-service.js): `reviews/srv/reviews-service.js`
- [Reviews Store](https://github.com/sap-archive/cloud-cap-samples/blob/main/reviews/db/schema.cds): `reviews/db/schema.cds`

### Runtime Tools

- [Data Viewer](https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/app/viewer/app.js): `inspectr/app/viewer/app.js`
- [Data Service](https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/srv/data-service.js): `inspectr/srv/data-service.js`
- [Connected Services](https://github.com/sap-archive/cloud-cap-samples/blob/main/inspectr/srv/data-service.js): `inspectr/srv/data-service.js`
- [Loggers Sample](https://github.com/sap-archive/cloud-cap-samples/blob/main/loggers/srv/loggers.js): `loggers/srv/loggers.js`

### Shared Models

- [Common Model](https://github.com/sap-archive/cloud-cap-samples/blob/main/common/index.cds): `common/index.cds`
- [Shared Schema](https://github.com/sap-archive/cloud-cap-samples/blob/main/shared-db/db/schema.cds): `shared-db/db/schema.cds`

### Other components

- **Shopper**
- **External Services**

## Connections

- Shopper → Bookshop UI: uses
- Bookshop UI → Catalog Service: requests catalog
- Bookshop UI → User Service: checks identity
- Catalog Service → Bookshop Store: reads and updates
- Admin Service → Bookshop Store: generates IDs
- Catalog Service → Mashup Wiring: emits order event
- Bookstore Apps → Mashup Wiring: served by
- Mashup Wiring → Catalog Service: connects to
- Mashup Wiring → Reviews Service: connects to
- Mashup Wiring → Orders Service: connects to
- Mashup Wiring → Bookshop Store: reads and updates
- Mashup Wiring → Reviews Service: reads reviews
- Mashup Wiring → Orders Service: creates orders
- Orders UI → Orders Service: manages orders
- Orders Service → Orders Store: reads items
- Orders Service → Mashup Wiring: emits order changes
- Reviews UI → Reviews Service: manages reviews
- Reviews Service → Reviews Store: reads and updates
- Reviews Service → Mashup Wiring: emits rating updates
- Data Viewer → Data Service: queries metadata and data
- Data Service → Connected Services: selects source
- Connected Services → External Services: queries services
- Connected Services → Bookshop Store: queries database
- Connected Services → Orders Store: queries database
- Connected Services → Reviews Store: queries database
- Mashup Wiring → Orders Store: creates order records
