An Accepted Proposal Without a Boundary Is Just Scope Creep With a Signature.
Steering Said Build. The Build Asked a Question.
The 2 October steering committee took eleven minutes, as promised, and chose Build. $580K, in-house, recorded in CR-001 v1.1 the same afternoon. The deciding argument was not the $140K saving over the vendor amendment; it was Nadia Benali's, as CRO: a real-time screening capability on cross-border remittances is a regulated control point, and deepening vendor dependency on a control the central bank will audit annually was a risk position she declined to hold. The decision came with two conditions. First, a latency evidence plan for the 200ms SLA, due to the PMO by 28 November, feeding the March certification file. Second, the new service enters the catalog under full program governance: ADR for any architecture choice, three-role ownership from day one, observability per the Post 11 decomposition.
The service is txn-screen, the catalog's twentieth entry. Nineteen was a locked number for ten months; CR-001 is the documented reason it is no longer the number, which is exactly what change control is for. The squad stands up on 6 October under Jin-ho Park, Development Lead, with Priya Raman holding architecture review.
Then the latency budget work surfaces a problem nobody priced. The 200ms SLA is end-to-end: from message receipt at the gateway to screening verdict. The synchronous path crosses four internal service hops before txn-screen ever sees the transaction. Park's squad runs a measured spike, SPK-2025-09, between 14 and 17 October: REST with JSON serialization costs a p99 of roughly 18ms per internal hop under projected load. Four hops, gateway overhead, and the screening computation itself project to a p99 around 178ms. The SLA technically holds, with 22ms of headroom, which is to say it holds until the first noisy neighbor, the first garbage collection pause, the first month-end volume spike. Nobody certifies a regulated control on 22ms of headroom.
The same spike measured gRPC with protobuf on the same path: roughly 6ms per hop at p99, projecting to about 130ms end-to-end. Seventy milliseconds of headroom. Park does what Post 12 taught the program to do with architecture convictions: he writes it down. ADR-002 lands in the architecture review queue on 28 October.
And immediately grows beyond its own evidence.
Park Proposes Everything. Raman Counts the Cost.
Park's draft does not propose gRPC for txn-screen's call path. It proposes gRPC for internal service communication across Atlas Bank, all twenty Falcon services and, by its written scope line, anything built after them. His logic is the logic of every engineer who has just measured a 3x improvement: if it is better, why would we ever not?
Priya Raman, who watched her own technically correct proposal get rejected in Post 12, is the one who slows the room down, and she does it on Park's strongest ground: the engineering.
Raman's challenge is not opposition; it is the rejected proposer holding the next proposal to the standard hers was held to. ADR-001 died partly because its operational cost was priced honestly and its benefit was not needed yet. ADR-002's benefit is needed, measurably, on one path. Its draft scope, though, imports cost onto nineteen other services where the benefit is unproven against any SLA they actually carry. The working resolution, hammered out across two sessions on 29 and 30 October, is a bounded adoption with a migration rule:
gRPC becomes the standard for internal service-to-service communication on Project Falcon. It applies immediately to txn-screen's synchronous path and to all services not yet feature-complete. Feature-complete services migrate only at natural touch points: when a service's interface is already being reopened for functional change. No migration-only work enters Phase 2 or Phase 3. External APIs are explicitly out of scope and remain REST via the Apigee gateway. The vendor's five contracted services keep REST adapters at their boundary; no contract change.
The adoption cost prices at $85K: protobuf contract registry, tooling, tracing revalidation on the txn-screen path, and squad training. Within the PM's $100K single-item authority; Ahmed Hassan logs it into November's discretionary aggregate, which closes the month at $212K of the $500K ceiling. Volkov gets one email and sends one sentence back: “Adapters at the boundary, clause 3.4 undisturbed, no commercial position.” After Posts 05, 10, and 13, a Volkov non-objection reads like applause.
The CTO Asks Whose Decision This Is
The technical scope settles. Then Abebe Alemu, CTO, reads the draft's decision line, “gRPC becomes the standard for internal service communication at Atlas Bank,” and asks the question that has nothing to do with protocols.
This is the structural friction Post 12 never had to face, because rejections do not expand. A rejected ADR threatens nobody's authority. An accepted one is precedent, and precedent travels: the moment Falcon's ADR-002 says “Atlas Bank,” every future protocol argument in the bank cites a decision made by a program body with no enterprise mandate. Alemu is not defending turf for its own sake; he is defending the decision-rights map, the same map that sent the build-versus-buy call to steering in Post 13 because it exceeded the PM's authority. Authority boundaries either bind in all directions or they bind in none.
The resolution takes one meeting on 31 October. The decision line is rewritten to bind Project Falcon's internal mesh only. Alemu co-signs the ADR as CTO, which does two things: it makes the bounded decision unchallengeable inside the program, and it makes ADR-002 formal input, evidence, not precedent, to an enterprise architecture review Alemu schedules for Q1 2026. Park gets his standard where his evidence lives. Alemu keeps the enterprise question in the enterprise forum.
The Alternatives, as Recorded
| Option | Summary | Verdict |
|---|---|---|
| gRPC program-wide and enterprise standard | Adopt for all Falcon services including feature-complete migrations; decision line binds Atlas Bank internal services going forward. | Rejected: migration cost on feature-complete services unsupported by any carried SLA; enterprise scope exceeds program decision rights (Alemu, 31 Oct). |
| gRPC bounded: Falcon internal, natural-touch-point migration | Standard for Falcon service-to-service; immediate on txn-screen path and non-complete services; external APIs stay REST via Apigee; vendor boundary untouched. | Adopted: captures the measured 200ms-path benefit at $85K, zero contract impact, zero migration-only work before certification. |
| Status quo: REST everywhere | No protocol change; meet the SLA through optimization of the existing path (caching, connection pooling, serialization tuning). | Rejected: spike-tested optimizations recovered 19ms, projecting 41ms p99 headroom; below the 60ms floor Benali set for certifying a regulated control. |
Drafting ADR-002 with PAS
Post 12 drafted ADR-001 with BAB and the proposal was rejected. ADR-002 uses PAS, the other workhorse of the same family, and the pairing is deliberate. Both frameworks come from copywriting, not project management; their use in drafting decision records is a practitioner adaptation, not a cited method, same caveat as Post 12. BAB (Before, After, Bridge) argues from a destination: here is the better world, here is how we cross. That framing suited ADR-001, which was a vision proposal, and the rejection showed the vision was not yet needed. PAS (Problem, Agitate, Solve) argues from a wound: here is the problem, here is what it costs to ignore, here is the fix. ADR-002 has an actual wound, a measured 22ms of headroom on a regulated SLA, so the framework that leads with the problem produces a document where the evidence carries the decision instead of the enthusiasm. Same template both times. The framework changes with what the argument honestly has.
The Draft, and the Authority Flag
An extract from the Context section, showing PAS doing what BAB could not have done with this material, and the flag that anticipated Alemu's challenge by four days.
CONTEXT. Problem: txn-screen must return a screening verdict within 200ms end-to-end, measured from gateway receipt, as a condition of Market C certification from March 2026. The synchronous path crosses four internal REST/JSON hops; spike test SPK-2025-09 projects a p99 of approximately 178ms under production load, leaving 22ms of headroom on a regulated SLA.
Agitate: 22ms is less than a single garbage-collection pause on a loaded JVM node, less than one Kubernetes pod cold-start tail, less than the observed month-end latency inflation on the existing fraud path. The optimized-REST variant recovers 19ms; the resulting 41ms headroom remains below the 60ms certification floor set by the CRO. The program would enter its certification audit defending a control that fails its SLA under conditions that occur monthly. The directive's issuer is the auditor.
Solve: adopt gRPC with protobuf for internal service-to-service communication, measured at ~6ms per hop on the identical path (~130ms end-to-end, 70ms headroom), bounded as specified in the Scope section below.
The flag found the same fault line Alemu found, before Alemu found it. It could not resolve the question; whose decision this is was never going to be answered by a language model. But it converted an ambiguity that would have detonated in the architecture review into an agenda item that was already on the table when the review opened. Park, to his credit, left the broad scope in the draft that went to review, on the grounds that asking for the enterprise and being scoped back was more honest than pre-shrinking the proposal. Reasonable people can disagree with that move. The CTO did.
ADR-002, as Accepted
Decision
gRPC with protobuf is adopted as the standard for internal service-to-service communication on Project Falcon. Effective immediately for the txn-screen synchronous path and all services not yet feature-complete. Feature-complete services migrate only at natural touch points (an interface already reopened for functional change); no migration-only work is scheduled in Phase 2 or Phase 3. Link: SPK-2025-09 results; CR-001 v1.1 conditions.
Scope and Non-Goals
| In scope | Falcon internal mesh: txn-screen path (immediate); 8 services not feature-complete (immediate); 11 feature-complete services (natural touch points only) |
| Non-goal | External APIs: remain REST via Apigee gateway, no exceptions in program lifetime |
| Non-goal | Vendor services: 5 contracted services keep REST adapters at boundary; contract ATL-PI-2024-11 untouched (vendor confirmed, 31 Oct 2025) |
| Non-goal | Enterprise standard: this ADR binds Project Falcon only; filed as input to enterprise architecture review, Q1 2026 (A. Alemu) |
Consequences
| Operational | Dual-stack window on partially migrated paths through Phase 3; protobuf contract registry stood up; Zipkin trace continuity revalidated per migrated path. Owner: J. Park |
| Financial | $85K adoption cost (registry, tooling, trace revalidation, training); within PM single-item authority; November discretionary aggregate closes at $212K of $500K. Owner: A. Hassan (ledger) |
| Contractual | None. Boundary adapters preserve vendor interface contracts; clause 3.4 position unchanged. Owner: D. Volkov (attestation on file) |
Certification Linkage
The 70ms projected headroom on the txn-screen path becomes the core of the latency evidence plan due to the PMO 28 Nov 2025 (CR-001 v1.1 condition 1) and enters the March 2026 certification file. Link: Risk R01; Readiness criteria (forthcoming, Phase 3).
Compare the two ADRs side by side and the template's real function appears. ADR-001: technically correct, REJECTED, reasoning preserved. ADR-002: technically correct, ACCEPTED, boundary preserved. The template did not change between them; the verdict did, and both verdicts are equally legible to the person who opens these files in 2027. A decision log that only ever says yes is a rubber stamp. One that only ever says no is a veto. The record proves this one is neither.
What the Human Changed
- Named the boundary in the decision line itself. The AI flagged the Falcon-versus-enterprise ambiguity; Park left it broad and the review scoped it back. The accepted version binds “Project Falcon” by name in the first sentence, with the enterprise question routed to Alemu's Q1 2026 forum as an explicit non-goal rather than a silence.
- Added the natural-touch-point migration rule. The draft applied the standard uniformly. Raman's blast-radius challenge produced the rule that does most of this ADR's work: feature-complete services migrate only when their interfaces are already open, and no migration-only work exists before certification.
- Replaced directional latency claims with SPK-2025-09 figures. The draft said gRPC was “substantially faster.” The accepted version says 18ms versus 6ms per hop at p99, 178ms versus 130ms on the path, with the spike test cited by ID. Unmeasured adjectives do not enter decision records.
- Made the CRO's 60ms headroom floor an explicit criterion. Benali's certification floor was the number that actually killed the status quo option, and the draft buried it in the alternatives table. The accepted version states it in Context, because the next ADR on a regulated path will need the same yardstick.
- Attached named owners to all three consequence blocks. The draft listed consequences without owners. Park owns dual-stack operations, Hassan owns the ledger entry, and Volkov's one-line attestation is on file against the contractual block. Consequences without owners do not get verified; Post 12 established that rule and this ADR honors it.
The 70ms headroom becomes the spine of the latency evidence plan delivered 28 November, which becomes the latency section of the March 2026 certification file (Post 16). The bounded-yes pattern, accept the proposal, draw the boundary, name the authority, becomes exhibit two in the governance defense when steering is asked whether this program should continue (Post 18). And ADR-002 itself gets reopened in the lessons register (Post 21), where the question will be the only one that matters about any accepted ADR: did the boundary hold?
Two ADRs, two verdicts, one template, and a program that now knows how to say both no and yes in writing. What it has not yet faced is the thing no template schedules: production telemetry quietly disagreeing with an assumption everyone stopped checking. That is Post 15, and the first move belongs to the machine.
A fictional case study for teaching purposes. Atlas Bank, Project Falcon and all named individuals are invented. Technologies are industry-standard and publicly available.