You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 304d7e9
Browse filesBrowse the repository at this point in the historyBrowse files
fix(zones): keep a row's public internet beside the DMZ, hanging at most one zone under another (#596) (#597)
Asked for left to right, a Sol three-zone-request-path-v2 sample stacked the
public internet, the DMZ and the private subnet one under another, and the
judge failed it on relationships. Neither zone's own flow is long enough to
wrap, so only top-level cuts were planned: two bands missed the 2:1 target at
2.3:1, so three won. In a row, of the plans no longer too long (under 2.45:1),
the one that hangs the fewest top-level zones under another now goes first,
the plan it passes its first alternative.
Eight of ten Sonnet samples hung the DMZ under the public internet. The cached
page's line ran straight to a response outside every zone, past the private
subnet, and a zoned cut could carry only lines joining the two ranks it
separates, so the one cut left was after the public internet. A zoned cut may
now also carry forward lines that skip ranks, each across that cut alone. The
skipping line may cross another, so the cuts that carry none are planned too
where they differ, and a plan whose cut carries one gives way to a later plan
adding nothing that crosses fewer lines or draws fewer findings. Seven of the
eight keep the DMZ beside the public internet; the eighth's skipping plan
crosses the WAF's line, so it keeps the plan it had.
Of the 60 saved zone specs from the last four evals, only those 8 left-to-right
three-zone renders change: top to bottom, and every hybrid, AWS and Kubernetes
spec, render as before. Of the zone and group fixtures in four directions,
only the four-deep stress case changes, in BT, LR and RL: its second
availability zone hangs under the first, 1.9:1 instead of a 4.1:1 row, and it
joins the alongside check. The routing fuzz's third zoned sample draws fewer
crossings and findings than pinned in both rows.
Fixes#596
Copy file name to clipboardExpand all lines: docs/flowchart-zones.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,8 @@ Each zone's label sits at the left of a header strip across its top; nothing the
44
44
- Edges route around every zone neither end sits in and never cross a zone's label or run along its outline. An edge whose ends share a zone stays inside the innermost zone holding both.
45
45
- Zones keep the diagram's direction at every level: zones a flow passes through one after another follow it, and zones it does not join stand side by side across it.
46
46
- A zoned flow too long for its breadth (2.45:1 for a row at least 1,200 px long or for any column, 4:1 always) wraps as a plain flowchart wraps into rows or columns, never by turning a zone across the flow. Level by level, the top level or one zone's members cut between whole ranks into bands, each read in the stated direction, columns keeping the plain rule's even-split guard. A band hangs under the step that leads into it, as far as the longest band allows, and lines into it turn in from that side. Of the plans that route with no more crossings, export defects or reader findings other than port jogs, the first adding nothing is kept, else the one with the fewest crossings, then findings, then the squarest. The hybrid fixture goes from 4.8:1 to 1.5:1, the AWS one from 2.8:1 to 1.7:1.
47
-
- In a row, a plan within the target that keeps the top-level zones side by side, wrapping inside one of them, goes before a plan that cuts the top level between two zones. That cut hangs the later zone under the earlier, though the flow passes from one to the next along the row, and the line between them runs down and back against it. The stacked plan stays the first alternative, so a side-by-side plan that routes worse still gives way to it. A column's cut stands the later zone beside the earlier, across a wide export, and columns plan as before. Two of three Sol samples of `hybrid-cloud-zones-v2`, asked for left to right, hung the AWS cloud under the data center (the top level reached the target in two bands, the region in three); the cloud now stands beside it.
47
+
- In a row, of the plans no longer too long (under 2.45:1), the one that hangs the fewest top-level zones under another goes first, before a plan that reaches the 2:1 target by hanging more. A top-level cut hangs the later zone under the earlier, though the flow passes from one to the next along the row, and the line between them runs down and back against it. The plan it passes stays the first alternative, so a plan that routes worse still gives way to it. A column's cut stands the later zone beside the earlier, across a wide export, and columns plan as before. Two of three Sol samples of `hybrid-cloud-zones-v2`, asked for left to right, hung the AWS cloud under the data center (the top level reached the target in two bands, the region in three); the cloud now stands beside it. A Sol sample of `three-zone-request-path-v2` stacked all three zones, since two bands missed the target (2.3:1) and three reached it; the DMZ now stands beside the public internet, the private subnet under it.
48
+
- A zoned cut may carry a forward line that skips ranks, as a cached page's line straight to a response past the private subnet, so long as that line crosses no other cut. The skipping line may cross another, so the cuts that carry none are planned too, where they differ, and a plan whose cut carries one gives way to a later plan, adding nothing to the layout it replaces, that crosses fewer lines or draws fewer reader findings. Eight of ten Sonnet samples of `three-zone-request-path-v2` hung the DMZ under the public internet, the only cut that carried no skipping line; seven now keep it beside the public internet, and the eighth, whose skipping line would cross the WAF's, keeps its plan. The four-deep stress fixture's second availability zone now hangs under the first: 1.9:1 instead of a 4.1:1 row.
48
49
- A plan whose plain routes cross more than the layout it replaces is routed again, each line across as few others as it can, before it is judged, so a crossing the plain router happens to draw does not alone stack sibling zones that read side by side along the flow.
49
50
- A plan that keeps the top level in one band and still crosses one line pair more is judged as the crossing repairs leave it, as the kept plan is drawn, where those leave it crossing, detouring, hooking, running through arrowheads and passing near nodes no more than the layout it replaces, each cleared of the nodes it passes, and no line in it runs more than twice its direct connection past its stubs. Such a plan only keeps sibling zones side by side: it replaces the chosen plan only where that one stacks them and it crosses and finds no more, and it never stacks zones itself. A Sol hybrid sample whose region, wrapped beside the data center, crossed the sync function's lines to the orders table and the invoice PDF once now draws beside it, the table's line entering the table from the side that faces the sync function.
50
51
- A line into a hanging band whose target stands behind another step of its rank, straight across the flow from the source, leaves forward and turns back into the target's forward side, around that step, instead of hooking around the band's margin to reach its near side. This is kept when it routes no worse, hooks or detours no line more, and draws the lines shorter in total. In a round 19 hybrid sample, the line to the orders table drops straight down and the line to the invoice archive brackets around it: four turns fewer and a tenth less line.
0 commit comments