Lesson 0.2: The two deployment shapes
Difficulty: Beginner | Duration: 8 min | Prerequisites: Lesson 0.1
Overview
Bowire ships in two deployment shapes. Both expose the exact same workbench surface and the same features — they differ only in where the workbench runs relative to the service you're working with. This lesson is the mental model and the decision criteria. It does not install anything: setup steps live in the unit that matches your shape, and this bootcamp's courses already point you at the right one.
Two-process (standalone CLI) — point at any URL
graph LR
Service["Your service<br/>localhost:5001"] --> Bowire["bowire CLI<br/>localhost:5080"]
Bowire --> Browser["Browser UI<br/>(workbench)"]
Browser --> Bowire
Bowire --> Service
The bowire CLI is a separate process. It boots a local browser UI and acts as a debugger that talks to the target service over the wire. The target can be your laptop service, a staging URL, a teammate's port-forward — anything Bowire can reach.
→ Install + first call: Unit 3: CLI & operations.
Single-process (embedded) — mount the workbench inside your service
graph LR
subgraph Process["Your ASP.NET service — one process"]
Routes["Your API routes<br/>/api/..."]
Workbench["Bowire workbench<br/>/bowire"]
DI["IServiceProvider · ILogger · [Authorize]<br/>(shared by both)"]
Routes --> DI
Workbench --> DI
end
Browser["Browser UI"] --> Workbench
Workbench --> Routes
The workbench lives inside your service process — same IServiceProvider, same [Authorize] policies, same IOptions<T> config, same logging. Discovery reads endpoint sources (gRPC reflection, OpenAPI document provider, SignalR hub registry) directly through DI — no schema round-trip, no version drift.
→ Wire-in + first mount: Unit 4: Embed Bowire.
Which shape does your work call for?
| If you… | Shape | Home unit |
|---|---|---|
| Debug someone else's API | CLI | Unit 3 |
| Build / debug your own ASP.NET service | Embedded | Unit 4 |
| Run security scans / contract exports in CI | CLI | Unit 3 |
| Ship a debug UI alongside your binary's routes | Embedded | Unit 4 |
| Drive Bowire from an AI agent across many targets | CLI (bowire mcp serve) |
Unit 3 |
| Drive a single in-process service from an agent | Embedded + --enable-mcp-adapter |
Unit 4 |
| Internal-tools team — inherit your auth + DI | Embedded | Unit 4 |
Most teams use both, in different contexts. You don't choose a shape here — you follow the course for your role, and each unit is written for a single shape. Where a cross-shape note helps, a unit links to the sibling unit rather than opening a second track inline.
The workbench is identical across shapes
Whichever shape mounted it, the workbench UI — Discover, invoke pane, response viewer, recorder, rails — is the same. That's why the UI walkthrough lives once in Unit 1: The Workbench, and the CLI and embedded units link to it instead of repeating it.
Key Takeaways
- Same workbench, two mounts. CLI = external probe across the wire; embedded = an endpoint inside your host that sees your DI.
- Your course picks the shape, not this lesson. Setup lives in Unit 3 (CLI) or Unit 4 (embedded).
- Cross-shape = a link, never an inline second track.
What's Next
Time to get a workbench open.
Continue: → Lesson 0.3: Get Bowire running