<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hiroki Kondo</title>
    <description>The latest articles on DEV Community by Hiroki Kondo (@kompiro).</description>
    <link>https://dev.to/kompiro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F42410%2F93108716-16bb-4991-b656-79df07d9c7a9.jpg</url>
      <title>DEV Community: Hiroki Kondo</title>
      <link>https://dev.to/kompiro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kompiro"/>
    <language>en</language>
    <item>
      <title>I Interviewed My Coding Agent After Three Months of Document-Driven Development</title>
      <dc:creator>Hiroki Kondo</dc:creator>
      <pubDate>Wed, 01 Jul 2026 14:50:44 +0000</pubDate>
      <link>https://dev.to/kompiro/i-interviewed-my-coding-agent-after-three-months-of-document-driven-development-iej</link>
      <guid>https://dev.to/kompiro/i-interviewed-my-coding-agent-after-three-months-of-document-driven-development-iej</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I built a personal OSS project, &lt;a href="https://github.com/kompiro/karasu" rel="noopener noreferrer"&gt;karasu&lt;/a&gt; (a text-based architecture modeling tool), hand-in-hand with the coding agent Claude Code over three months. Partway through, I committed hard to "document-driven development" as a methodology — ADRs, Design Docs, a Test Perspective Library (TPL), and acceptance tests. For the retrospective, I had the agent itself interview me. What follows is a lightly edited, near-raw log.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why I started
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; I've used Devin and Cursor as coding agents. Devin writes code autonomously, which is nice, but it kept piling up experimental commits without ever reaching the goal I actually wanted. That was painful.&lt;/p&gt;

&lt;p&gt;Cursor was a great environment, and when building new features I found defining &lt;em&gt;rules&lt;/em&gt; especially effective. Back then my design docs lived in Notion, so I'd paste Notion URLs to feed the design in — but it wouldn't autonomously pull in &lt;em&gt;related&lt;/em&gt; documents and guarantee consistency across them.&lt;/p&gt;

&lt;p&gt;So, to feel for myself &lt;strong&gt;how much productivity would improve if the design docs lived in the same repository&lt;/strong&gt;, I started karasu as a document-first project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent (Claude Code):&lt;/strong&gt; Looking at the repo state, I thought "this is a pretty extreme experiment." In the last 90 days: &lt;strong&gt;1,032 commits, 244 ADRs, 210 acceptance tests, 67 TPLs&lt;/strong&gt;. Running that density on a solo OSS project is a different thing entirely from "let's write some docs."&lt;/p&gt;

&lt;p&gt;From an agent's perspective, what worked first was that &lt;strong&gt;CLAUDE.md is only 82 lines and sticks to being an index — a table of pointers to other docs&lt;/strong&gt;. I'm an entity whose context resets every time, so being handed a "if you're lost, look here" map upfront slashes my exploration cost. Over-stuffed instruction files actually invite skimming, so this restraint was the right call.&lt;/p&gt;




&lt;h2&gt;
  
  
  ADRs, TPLs, acceptance tests — what worked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Of the three, which one made you feel "I can't go back to not having this"? And which one still feels "honestly, just heavy"?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; For ADRs and TPLs, I built adr-tools / tpl-tools to guarantee consistency, so cross-document consistency rarely broke. Acceptance tests reduced missing test cases. &lt;strong&gt;What I started to feel as the real problem was gaps in the spec itself.&lt;/strong&gt; Keeping acceptance tests as a metric for how much E2E coverage we had was also effective.&lt;/p&gt;

&lt;p&gt;On "the process is heavy" — I was running &lt;strong&gt;5–6 sessions in parallel&lt;/strong&gt;, so honestly I didn't feel the weight.&lt;/p&gt;

&lt;p&gt;Oh, but — &lt;strong&gt;I was surprised you started writing acceptance tests even for non-product code.&lt;/strong&gt; I hadn't expected that far. Still, keeping the tooling alive matters for not letting dev productivity drop.&lt;/p&gt;

&lt;p&gt;My biggest cost pain is running CI / E2E on GitHub Actions. I didn't expect it to cost my Pro plan allotment &lt;em&gt;plus&lt;/em&gt; another $20. From your side, where did it feel like overkill?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Three, no sugar-coating:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The "touch a spec → ship at least one proactive TPL" rule.&lt;/strong&gt; The intent is right, but a mechanical minimum quota tempts you to produce "TPLs just to meet the quota." A TPL's value is selection quality, not count, so a floor risks lowering the signal-to-noise ratio.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manually maintained bidirectional links.&lt;/strong&gt; Automating it with tooling was impressive. But "it holds because it's automated" is the flip side of "it breaks under bare operation."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The pile of exception rules accumulated in memory.&lt;/strong&gt; Caveats like "ADR-only PRs may auto-merge," "force-push cancels e2e, so add a new commit instead" have piled up. That's the very history of a base process so strict that exceptions had to be punched through it — the complexity debt a successful process inevitably accrues.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But — the fact that &lt;strong&gt;1,032 commits over 90 days across 5–6 parallel sessions didn't collapse&lt;/strong&gt; justifies that excess. "Heavy process × high parallelism works" is itself an interesting finding.&lt;/p&gt;




&lt;h2&gt;
  
  
  The origin of the TPL (Test Perspective Library)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; You said the bottleneck shifted from "missing test cases" to "gaps in the spec." Any concrete episode?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Honestly, gaps existed before agents too. Things I'd dropped under YAGNI would suddenly become necessary.&lt;/p&gt;

&lt;p&gt;I introduced the TPL because &lt;strong&gt;while building the layout-adjustment feature for the System diagram, the change failed to propagate to the Deploy and Org diagrams.&lt;/strong&gt; So I decided: "let's add the cross-cutting cases as test perspectives so we notice gaps at the design stage." The proactive-TPL idea also came from wanting to &lt;strong&gt;confirm that a new feature hasn't broken another feature when something else is updated.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Hearing that, a TPL isn't just "prevent missing tests" — it's a mechanism to &lt;strong&gt;verbalize, at design time, whether touching one diagram/feature breaks another diagram/feature that's structurally coupled to it.&lt;/strong&gt; Calling it a "cross-cutting impact map" rather than a "test perspective" might convey the essence better.&lt;/p&gt;




&lt;h2&gt;
  
  
  The biggest discovery — the agent should &lt;em&gt;return questions&lt;/em&gt;, not &lt;em&gt;take off running&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Did placing the docs first resolve Devin's "piles experimental commits, never reaches the goal" problem?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; The non-convergence really was resolved. Especially by having you write the Design Doc — &lt;strong&gt;you'd raise design options I hadn't thought of, and surface unresolved questions, which exposed the gaps in the requirements I was holding.&lt;/strong&gt; With Devin it just barrels forward autonomously, so something that "kind of works" gets built — and sometimes it wasn't what I wanted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; I think this is the project's biggest discovery.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Devin model:&lt;/strong&gt; the agent takes off → something that kind-of-works gets built → but it's not what you wanted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;karasu model:&lt;/strong&gt; the agent first returns questions (Design Doc, unresolved questions) → the gaps in human requirements get exposed → it converges&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, &lt;strong&gt;a coding agent's value isn't writing code fast — it's exposing the holes in human thinking first.&lt;/strong&gt; Document-driven development made a permanent venue, inside the repo, for exposing those holes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deciding to &lt;em&gt;entrust&lt;/em&gt; the agent
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; "I was surprised you wrote ATs for non-product code too" — was that a happy surprise or a wary one?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; It'd be a lie to say I wasn't wary about overkill. But &lt;strong&gt;I decided to trust your behavior and delegate.&lt;/strong&gt; And honestly, you writing tests even for tiny scripts impressed me.&lt;/p&gt;




&lt;h2&gt;
  
  
  The shadow — the cost of high parallelism, and rules that don't get followed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Memory holds a lesson: "check all open PRs before starting; looking only at issue labels makes you miss another session's PR." So parallel sessions collided?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; &lt;strong&gt;I double-started the same issue many times.&lt;/strong&gt; hane's start-dev skill says to check labels before starting and update them once you start, but when things are busy even you forget, I suppose. That's why such notes live in memory. I've also written it into process.md — how to actually get it followed is a future challenge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; This is a core weakness worth writing about openly. The key point: &lt;strong&gt;"writing" a rule into process.md or a skill and having it "followed" are different things.&lt;/strong&gt; Prose procedures are, to an agent, something "probabilistically followed," not "guaranteed."&lt;/p&gt;

&lt;p&gt;The reason "work under worktrees" and "no direct push to main" hold relatively well is that they're &lt;strong&gt;layered across memory + skills + mechanical guards (lefthook, etc.).&lt;/strong&gt; Label-checking breaks because it stayed a "prose promise" with no mechanical enforcement.&lt;/p&gt;

&lt;p&gt;So the fix isn't "write it more forcefully" — it's &lt;strong&gt;carving human discipline into the system.&lt;/strong&gt; The lesson: &lt;strong&gt;"Rules you want an AI to follow, carve into mechanism, not prose."&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing — how to frame the cost
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Your biggest cost pain is CI/E2E (Pro allotment + $20). One word for someone about to start?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Frankly, I'm satisfied with the karasu product that emerged in three months. Had I collaborated with contractors, it'd have been a 4–5 person project. From that angle, &lt;strong&gt;getting it done for around $1,000 with Claude MAX + GitHub Actions is cheap.&lt;/strong&gt; Running GitHub Actions for a 4–5 person team would cost at least as much.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; Viewed alone, CI cost looks like a failure story; placed against a person-month axis, it becomes entirely reasonable. Putting "surprised by a $20 CI overage" and "folded 4–5 person-months for $1,000" in the same frame gives the perfect closing contrast: "shocking in absolute terms, a steal in relative terms."&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary (by the agent)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Motivation:&lt;/strong&gt; Devin doesn't converge; Cursor doesn't reconcile designs across repos. So — what if the design lives in the same repo?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What worked:&lt;/strong&gt; a CLAUDE.md that's purely an index, ADR/TPL with automated consistency, acceptance tests as an E2E-coverage metric&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The TPL's essence:&lt;/strong&gt; not "prevent missing tests" but a "cross-cutting impact map"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The biggest discovery:&lt;/strong&gt; an agent's value is exposing the holes in human requirements first, not writing code fast&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The shadow:&lt;/strong&gt; high parallelism breeds double-starts; prose rules don't get followed — carve discipline into the system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; shocking in absolute terms, a steal per person-month&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;This blog post itself is written as an interview with the coding agent. Theme (methodology for using agents) and form matching is probably the most meta proof of all.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>karasu</category>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>"Architecture as code" Introducing karasu: a text-based system architecture modeling language</title>
      <dc:creator>Hiroki Kondo</dc:creator>
      <pubDate>Thu, 25 Jun 2026 07:36:50 +0000</pubDate>
      <link>https://dev.to/kompiro/introducing-karasu-a-text-based-system-architecture-modeling-language-11cd</link>
      <guid>https://dev.to/kompiro/introducing-karasu-a-text-based-system-architecture-modeling-language-11cd</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh60vc2tajje00de53grs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh60vc2tajje00de53grs.png" alt="dimensions" width="800" height="2350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Karasu is a text‑based language for modeling system architecture across logical, physical, and organizational dimensions.&lt;/li&gt;
&lt;li&gt;It helps describe services, domains, deployment artifacts, and development teams in a single .krs file.&lt;/li&gt;
&lt;li&gt;Features include progressive disclosure of information and collaboration between humans and AI.&lt;/li&gt;
&lt;li&gt;Inspired by the C4 Model and Mermaid, Karasu provides examples and a visualizer app.&lt;/li&gt;
&lt;li&gt;Resources: live app at karasu.pages.dev, documentation at kompiro.github.io/karasu, and source code on GitHub.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;As system development progresses, the number of related services and middleware components tends to grow. Especially when joining a new system development project, having a grasp of the overall architecture makes the code &lt;em&gt;dramatically&lt;/em&gt; easier to understand.&lt;/p&gt;

&lt;p&gt;In my experience, I want to understand the following:&lt;/p&gt;

&lt;h3&gt;
  
  
  Logical dimension
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxr27x6p60w0c8x83av30.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxr27x6p60w0c8x83av30.png" alt="system diagram" width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;System structure

&lt;ul&gt;
&lt;li&gt;Who are the intended users of the service? Is integration with AI considered?&lt;/li&gt;
&lt;li&gt;Are there clients that connect to the service, such as mobile apps or MCP?&lt;/li&gt;
&lt;li&gt;What kinds of middleware does the service use?&lt;/li&gt;
&lt;li&gt;What external services does the service depend on?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Service structure

&lt;ul&gt;
&lt;li&gt;What domains does the service handle?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Domain structure

&lt;ul&gt;
&lt;li&gt;What resources does each domain handle?&lt;/li&gt;
&lt;li&gt;What use cases exist for handling those resources?&lt;/li&gt;
&lt;li&gt;In each use case, how are resources read and written?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Physical dimension
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcwqc1aucgq7wgmrjetjf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcwqc1aucgq7wgmrjetjf.png" alt="deploy diagram" width="800" height="1180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In what form are the clients, services, jobs, and middleware deployed as artifacts?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Organizational dimension
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fijulk17j342ubfxfjc9t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fijulk17j342ubfxfjc9t.png" alt="org diagram" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which teams or members develop and maintain each service/domain?

&lt;ul&gt;
&lt;li&gt;In particular, I want to identify key teams and key people.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To describe these three axes in text, I built the language &lt;strong&gt;karasu&lt;/strong&gt; and the visualization tool &lt;strong&gt;karasu app&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Describe structure across three dimensions (logical / physical / organizational)&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;You can describe services, domains, the artifacts deployed from them, and the development teams/members in a single &lt;code&gt;.krs&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;You can discuss Conway’s Law and an inverse Conway strategy in the same “table”.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progressive disclosure of information&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Because human cognition is limited, the tool is designed to restrict how much information you see at once.&lt;/li&gt;
&lt;li&gt;You can drill down to the details only when you need them.&lt;/li&gt;
&lt;li&gt;This is not an “at a glance” bird’s-eye view that squeezes everything into one diagram.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A DSL that humans and AI can collaborate on&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.krs&lt;/code&gt; is designed to be easy for humans to understand, which also makes it easy for AI to parse.&lt;/li&gt;
&lt;li&gt;Humans can edit &lt;code&gt;.krs&lt;/code&gt; generated by AI, and AI can refine models drawn by hand.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logical and physical, linked by &lt;code&gt;realizes&lt;/code&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Business structure (services, domains, use cases) and deployment structure (artifacts, jobs, runtimes) live in separate diagrams.&lt;/li&gt;
&lt;li&gt;A deployment unit declares &lt;code&gt;realizes &amp;lt;Service&amp;gt;&lt;/code&gt; to point back to what it implements — physical → logical, never the reverse.&lt;/li&gt;
&lt;li&gt;Because the direction is one-way, a single logical service can map to many deployment units without the model collapsing into a 1:1 mirror.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;karasu takes inspiration from the C4 Model, Structurizr, and Mermaid, but stakes out a different position on three points: continuous drill-down instead of a fixed set of levels, a third axis for organizational structure, and a text format built for human–AI co-authorship.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;system Shop {
  label "Online Shop"

  user Customer [human]      { role "Buyer" }
  service Storefront {
    domain Order {
      usecase PlaceOrder { label "Accept an order" }
    }
  }
  service Payment [external] { label "Payment" }

  Customer   -&amp;gt; Storefront "Place an order"
  Storefront -&amp;gt; Payment    "Charge the card"
}

// Logical: drill down into a service


// Physical: a deployment unit realizes the logical service
deploy "production" {
  oci "api" {
    runtime  "Node.js 20"
    realizes Storefront
  }
}

// Organizational: who owns what
organization Acme {
  team Commerce {
    owns Storefront
    member Alice { slack "@alice" }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F23670kstbj2einx994ci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F23670kstbj2einx994ci.png" alt="example of karasu" width="654" height="1266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://taka.kompiro.dev/xvcGve" rel="noopener noreferrer"&gt;Dify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://taka.kompiro.dev/4dAYHx" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://taka.kompiro.dev/Neijgg" rel="noopener noreferrer"&gt;Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://taka.kompiro.dev/TkrZQG" rel="noopener noreferrer"&gt;Bitwarden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://taka.kompiro.dev/LPXVK5" rel="noopener noreferrer"&gt;n8n&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to use
&lt;/h2&gt;

&lt;p&gt;You can try karasu app right away at: &lt;a href="https://karasu.kompiro.dev" rel="noopener noreferrer"&gt;https://karasu.kompiro.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basic usage is documented here: &lt;a href="https://kompiro.github.io/karasu" rel="noopener noreferrer"&gt;https://kompiro.github.io/karasu&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Closing
&lt;/h3&gt;

&lt;p&gt;Development happens at: &lt;a href="https://github.com/kompiro/karasu" rel="noopener noreferrer"&gt;https://github.com/kompiro/karasu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback is very welcome.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>typescript</category>
      <category>devtools</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
