Skip to content

Commit 168cc3e

Browse files
committed
add architecture notes
1 parent d222a08 commit 168cc3e

File tree

3 files changed

+112
-3
lines changed

3 files changed

+112
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: "Arhitecture and Infrastructure"
3+
date: 2024-11-30T17:20:22+03:00
4+
draft: false
5+
description: "Arhitecture and Infrastructure"
6+
summary: ""
7+
---
8+
9+
## Cache
10+
11+
- Server
12+
- Patterns
13+
- Cache-Aside
14+
- Advantages
15+
- Устойчивость к сбоям кеша
16+
- Модель данных в кеше может отличаться от модели данных в БД
17+
- Disadvantages
18+
- Низкая скорость обновления данных
19+
- Несогласованность данных в кеше с базой данных
20+
- Read-Through
21+
- Advantages
22+
- Меньшая сложность приложения и низкая вероятность ошибок
23+
- Disadvantages
24+
- Кеш-промах при первом запросе
25+
- Ограничения на выбор модели данных в кеше
26+
- Чувствительность к ошибкам в отличие от Cache-Aside
27+
- Refresh-ahead
28+
- Advantages
29+
- Низкая стоимость чтения данных из БД
30+
- Согласованность записей кеша, к которым часто обращаются пользователи
31+
- Высокая чувствительность к задержкам
32+
- Disadvantages
33+
- Кеш должен работать без ошибок, поскольку в случае ошибки это будет не сразу определено и приведёт к неконсистентности данных и чтению из базы.
34+
Write-Through
35+
- Advantages
36+
- Данные между кешем и базой данных всегда будут синхронизированы
37+
- Disadvantages
38+
- Необходимость ждать, пока кеш обновит базу данных
39+
- Write-Behind
40+
- Invalidation
41+
- Time-based
42+
- Purge Cache
43+
- Refresh Cache
44+
- Time-To-Live(TTL) expiration Cache
45+
- Key-based
46+
- Client
47+
48+
## HighLoad
49+
- Patterns
50+
- Backpressure
51+
- Curcuit Breaker
52+
53+

content/arhitecture/design.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ description: "Architecture design"
77

88
## C4 Model
99

10+
- [C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML?tab=readme-ov-file#container-diagram)
11+
1012
## How to create
1113

1214
1. Соберать требования и определите границы системы

content/arhitecture/micro-services-and-frontends.md

+57-3
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,12 @@ description: "Microservices and Microfrontends"
159159
- Граицы сервисов
160160
- Методы взаимодействия
161161
- Синхронное взаимодействие
162-
- REST
162+
- RESTful
163163
- GRPC
164-
- Асинхронное ывзаимодействие
164+
- OpenAPI
165+
- Асинхронное взаимодействие
165166
- Event-Driven Architecture
167+
- AsyncAPI
166168
- Управление данными
167169
- Стратегии обеспечения согласованности данных
168170
- Конечная согласованность
@@ -224,7 +226,11 @@ description: "Microservices and Microfrontends"
224226
- Database per Service
225227
- Service per Team
226228
- Event Sourcing
229+
- Message Queueing
230+
- Publish/Subscribe
227231
- CQRS
232+
- Commands
233+
- Queries
228234
- Saga
229235
- Типы реализации
230236
- Orchestration
@@ -255,7 +261,55 @@ description: "Microservices and Microfrontends"
255261
- Distributed Tracing
256262
- Audit Logging
257263
- API Gateway
264+
- Types
265+
- Монолитный
266+
- Распределенный
267+
- Многослойный
268+
- Serveless
269+
- Functions
270+
- Централизация маршрутизации запросов
271+
- Управление аутентификацией и авторизацией
272+
- Балансировка нагрузки и распределение трафика
273+
- Обеспечение безопасности
274+
- Кэширование запросов
258275
3. Infrastructures patterns
259276
- Service Discovery,
260277
- Service Mesh
261-
- Service Registry
278+
- Service Registry
279+
280+
## Principles
281+
282+
- The Twelve-Factor App
283+
- Codebase
284+
- Dependencies
285+
- Config
286+
- Backing Services
287+
- Build, Release, Run
288+
- Processes
289+
- Port Binding
290+
- Concurrency
291+
- Disposability
292+
- Dev/Prod Parity
293+
- Logs
294+
- Admin Processes
295+
- Lightweight microservices
296+
- Минимализм
297+
- Независимость
298+
- Быстрое время запуска
299+
- Эффективное использование ресурсов
300+
- Упрощение зависимостей
301+
- Обеспечение изоляции
302+
- Документирование и автоматизация
303+
- DevOps
304+
- Pipeline as Code
305+
- Повторяемость
306+
- Гибкость
307+
- Версионирование
308+
- Прозрачность
309+
- Масштабируемость
310+
- Подверженность ошибкам
311+
- Infrastructure as Code
312+
- CI/CD
313+
- Continuous Integration
314+
- Continuous Delivery
315+
- Continuous Deployment

0 commit comments

Comments
 (0)