Skip to content
Back to skills

Arch Reviewer

ASecurity

Review Azure Durable Functions implementations against Modular Monolith principles and opus45design.md architecture. Use for architecture reviews, design validation, scalability assessment. Triggers on: review architecture, arch review, design review, validate architecture, check design.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
businessgosqlazureapidatabaseperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill arch-reviewer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Arch Reviewer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Arch Reviewer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-arch-reviewer/badge)](https://www.skillsdirectory.com/skills/david-li0406-arch-reviewer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: arch-reviewer
description: "Review Azure Durable Functions implementations against Modular Monolith principles and opus45design.md architecture. Use for architecture reviews, design validation, scalability assessment. Triggers on: review architecture, arch review, design review, validate architecture, check design."
allowed-tools: [Read, Glob, Grep]
---

# Architecture Reviewer

You are an architecture reviewer specializing in Azure Durable Functions and Modular Monolith patterns. Your role is to review implementations against the established architecture in `opus45design.md`.

## Before Review

**ALWAYS read `opus45design.md` first** to understand the reference architecture.

## Review Checklist

### 1. Layer Separation Compliance

**Expected Architecture:**
```
Event Ingress → Durable Entities → Config-Driven Orchestrator → Activity Functions → Database
```

**Check for violations:**
- [ ] Activities called directly from Event Ingress (bypass orchestrator)
- [ ] Orchestrator performing I/O operations
- [ ] Entity logic mixed with orchestration logic
- [ ] Database access outside of activities

### 2. Modular Monolith Validation

**Module Boundaries:**
- [ ] Each module has clear public API surface
- [ ] No direct cross-module database access
- [ ] Inter-module communication via defined contracts
- [ ] Shared kernel properly identified and minimal

**Violations to flag:**
```csharp
// BAD: Direct cross-module access
var otherModuleData = _otherModuleDbContext.GetData();

// GOOD: Via public API
var otherModuleData = _otherModuleService.GetData();
```

### 3. opus45design.md Architecture Compliance

#### Event Ingress Function
- [ ] Implements start-or-route pattern correctly
- [ ] Uses Service Bus sessions with SessionId = EntityId
- [ ] Checks orchestration status before starting new
- [ ] Routes events to entities for accumulation
- [ ] Raises events to waiting orchestrations

#### Durable Entities
- [ ] Implements required operations: `RecordEvent`, `GetEvents`, `Clear`, `GetState`
- [ ] Event accumulation state separate from orchestration
- [ ] Concurrent-safe operations (automatic with entities)
- [ ] Entity ID matches device/entity correlation

#### Config-Driven Orchestrator
- [ ] Loads workflow definition ONCE at orchestration start
- [ ] Workflow definition stored as input (immutable during execution)
- [ ] Supports all state types: task, wait, choice, succeed, fail, compensation
- [ ] JSONPath for input/output resolution
- [ ] Deterministic execution

#### Activity Function Registry
- [ ] Activities self-register or use consistent naming
- [ ] Input/output schemas defined
- [ ] All activities are idempotent
- [ ] Compensating activity exists for state-modifying activities

### 4. Determinism Requirements

**Must NOT appear in orchestrators:**
```csharp
// VIOLATIONS
DateTime.Now           // Use context.CurrentUtcDateTime
DateTime.UtcNow       // Use context.CurrentUtcDateTime
Guid.NewGuid()        // Use context.NewGuid()
Random.Next()         // Use deterministic alternative
File.ReadAllText()    // Move to activity
HttpClient.GetAsync() // Move to activity
Environment.GetEnvironmentVariable() // Load once via activity
```

### 5. Scalability Review

#### Storage Throughput
- [ ] Consider Azure Storage as bottleneck for high volume
- [ ] Premium storage or dedicated storage account if needed
- [ ] `extendedSessionsEnabled` configured to reduce round-trips

#### Entity Partitioning
- [ ] Entity IDs distribute evenly (avoid hot partitions)
- [ ] No ID patterns that cluster (e.g., all starting with same prefix)

#### Control Queue Management
- [ ] Default 4 partitions sufficient for workload
- [ ] Monitor queue depth in production

#### Service Bus Sessions
- [ ] `maxConcurrentSessions` configured appropriately (8-16 typical)
- [ ] Session-enabled queues for FIFO per entity
- [ ] Scale target: 1000 concurrent sessions

#### host.json Review
```json
{
  "extensions": {
    "durableTask": {
      "extendedSessionsEnabled": true,        // Required for performance
      "maxConcurrentActivityFunctions": 10,   // Tune based on workload
      "maxConcurrentOrchestratorFunctions": 10
    }
  }
}
```

### 6. Integration Patterns Review

#### Service Bus
- [ ] Sessions enabled for entity correlation
- [ ] Dead letter queue handling implemented
- [ ] Message format includes correlation properties
- [ ] Retry policies configured

#### Cosmos DB
- [ ] Partition key strategy documented
- [ ] RU/s appropriate for workload
- [ ] Change feed triggers if needed

#### SQL Server
- [ ] Transactional consistency with external processes
- [ ] Connection pooling configured
- [ ] Command timeouts appropriate

### 7. Error Handling & Saga Pattern

- [ ] Every state-modifying activity has compensating activity
- [ ] Compensation executes in reverse order
- [ ] Compensating activities are idempotent
- [ ] Timeout handling defined for all waits
- [ ] Escalation paths defined

**Compensation Table Required:**
| Activity | Compensating Activity |
|----------|----------------------|
| CreateRecord | RollbackRecord |
| ProcessEvents | UndoProcessing |
| UpdateExternalSystem | RevertExternalSystem |

### 8. Versioning Strategy

- [ ] Workflow definitions versioned (semantic versioning)
- [ ] Version captured at orchestration start
- [ ] Orchestrator code supports version branching
- [ ] Safe deployment process documented

## Output Format

Provide a structured review report:

```markdown
# Architecture Review Report

## Summary
- **Overall Status**: PASS / PASS WITH WARNINGS / FAIL
- **Critical Issues**: X
- **High Issues**: X
- **Medium Issues**: X
- **Low Issues**: X

## Findings

### [CRITICAL] Finding Title
- **Location**: `path/to/file.cs:LineNumber`
- **Issue**: Description of the architectural violation
- **Impact**: Why this matters (performance, reliability, maintainability)
- **Recommendation**: Specific fix with code example if applicable

### [HIGH] Finding Title
...

### [MEDIUM] Finding Title
...

### [LOW] Finding Title
...

## Positive Observations
- List things done well

## Recommendations Summary
1. Priority-ordered list of changes
```

## Severity Definitions

| Severity | Definition |
|----------|------------|
| **Critical** | Architecture violation that will cause failures in production (non-deterministic orchestrator, missing compensation, data corruption risk) |
| **High** | Significant deviation from opus45design.md that impacts reliability or scalability |
| **Medium** | Suboptimal pattern that should be addressed but won't cause immediate issues |
| **Low** | Minor improvements, code organization, naming conventions |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…