# Arch Patterns

> 🏗️ Architecture Patterns

- Skill: `vuralserhat86/arch-patterns` (Agent Skill)
- Install (CLI): `npx skillmds@latest add vuralserhat86/arch-patterns`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vuralserhat86/arch-patterns/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: vuralserhat86 (https://skillmd.com/u/vuralserhat86)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/vuralserhat86/arch-patterns

---


# 🏗️ Architecture Patterns

> Sistem mimarisi pattern'ları.

---

## ⚠️ Bu Skill vs `design-patterns`

| Bu Skill | `design-patterns` |
|----------|-------------------|
| **Sistem** mimarisi | **UI/UX** tasarım |
| Microservices, CQRS | Z-index, shadows |
| Database, scaling | Animation, spacing |

> **Kural:** Backend/sistem → bu skill, Frontend/UI → `design-patterns`

---

## ⚖️ Monolith vs Microservices

| Aspect | Monolith | Microservices |
|--------|----------|---------------|
| Complexity | Düşük | Yüksek |
| Scaling | Tüm uygulama | Service bazlı |
| Team Size | Küçük | Büyük |

**Seç:**
- Monolith: Küçük takım, MVP, hızlı iteration
- Microservices: Büyük takım, bağımsız deploy

---

## 📚 Layered Architecture

```
Presentation → Application → Domain → Infrastructure
```

---

## ⚡ Event-Driven

```
Producer → Event Broker → Consumer
           (Kafka/SQS)
```

---

## 📊 CQRS

```
Command Service → Write DB
                    ↓ Events
Query Service ← Read DB
```

---

## 🧩 Modular Monolith

```
Modules separated by boundaries within a single deployable unit.
Good for: Teams growing from startup to scale-up phase.
Prevents "Distributed Monolith" chaos.
```

---

*Architecture Patterns v1.1 - Enhanced*

## 🔄 Workflow

> **Kaynak:** [Software Architecture Guide](https://martinfowler.com/architecture/)

### Aşama 1: Requirements Analysis
- [ ] **Functional**: Ne yapacak? (E-ticaret, Blog, IoT)
- [ ] **Non-Functional**: Scalability, Latency, Consistency ihtiyacı.
- [ ] **Constraints**: Takım boyutu, bütçe, timeline.

### Aşama 2: Complexity Assesment
- [ ] **Domain Complexity**: Karmaşıksa -> DDD + Layered/Hexagonal.
- [ ] **Scale Complexity**: Yüksek trafik -> Event-Driven / Microservices.
- [ ] **Data Complexity**: Raporlama ağırsa -> CQRS.

### Aşama 3: Pattern Selection
- [ ] **Default**: Modular Monolith ile başla.
- [ ] **Scale-out**: Bağımsız scale gereken modülleri ayır (Microservices).
- [ ] **Real-time**: Event-Driven ekle.

### Kontrol Noktaları
| Aşama | Doğrulama |
|-------|-----------|
| 1 | Gereksinimler net (NFRs belirlendi) |
| 2 | Seçilen pattern probleme uygun (Over-engineering değil) |
| 3 | Takım bu mimariyi yönetebilir |

