# Meridian — как устроен (черновик) ## Overview ``` ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ Editor │───▶│ API GW │───▶│ Content DB │ │ (React) │ │ │ │ (PostgreSQL)│ └──────────┘ └────┬─────┘ └──────────────┘ │ ▼ ┌──────────────┐ ┌──────────────┐ │ CaelixFlow │ │ (media files)│ └──────────────┘ ``` ## Services | Service | Tech | Port | |---------|------|------| | editor-ui | React 19 | 3000 | | content-api | Go 1.22 | 8080 | | workflow-engine | Temporal | — | | media-proxy | Node.js | 8081 | ## Content model ```json { "id": "page_abc", "slug": "/about", "title": "About Us", "blocks": [ {"type": "heading", "level": 1, "text": "About Us"}, {"type": "paragraph", "text": "..."}, {"type": "image", "src": "https://cdn.caelixflow.com/media/hero.jpg"} ], "status": "published", "locale": "en" } ``` ## Workflow states ``` draft → review → approved → published → archived ↓ rejected → draft ``` ## Caching - Published pages: CDN, TTL 1 hour - Draft pages: no cache - Media: CDN, TTL 24 hours