Sistem Dizayn Konseptləri
Sistem dizaynında istifadə olunan müxtəlif konsept, alət və texnologiyaların qısa izahı. Bu konseptlər paylanmış sistemlərdə, authentication, data integrity və deployment proseslərində mühüm rol oynayır.
Nə üçün lazımdır?
- Texniki söhbətlərdə: Interview və dizayn müzakirələrində tez-tez çıxan terminlər
- Sistem dizaynında: Kompleks sistemlərin qurulmasında istifadə olunan əsas konseptlər
- Best practice: Sənayedə qəbul edilmiş standart yanaşmalar
- Problemləri həll etmək: Müxtəlif sistemlərdə çıxan problemlərə həll yolları
- Kommunikasiya: Texniki komanda ilə ünsiyyətdə terminologiya bilikləri
Data Strukturları və Alqoritmlər
- Bloom Filter: False positive ehtimalı ilə elementin siyahıda olub-olmadığını yoxlayır. Memory efficient, verilənlər bazasına müraciət azaldır
- Consistent Hashing: Serverlər əlavə/çıxarıldıqda minimal data redistribution
- Merkle Tree: Data integrity yoxlama üçün hash tree. Git, IPFS, blockchain istifadə edir
- LSM Tree: Yazma-yönümlü data strukturu. Cassandra, RocksDB istifadə edir
Paylanmış Sistem Konseptləri
- Quorum: Əməliyyatın uğurlu sayılması üçün minimum server sayı. (R+W>N) formulası
- Heartbeat: Server health check üçün dövri mesajlar. Load balancer və cluster management
- Vector Clock: Paylanmış hadisələrin zamanını müqayisə etmək üçün
- Gossip Protocol: P2P şəbəkədə məlumat yayılması. Cassandra cluster metadata
Security və Authentication
- OAuth 2.0: Authorization üçün açıq standart. Google, Facebook login
- JWT (JSON Web Token): Stateless authentication token. Header.Payload.Signature formatı
- API Key: Sadə authentication üsulu. Rate limiting və access control
- Hash Functions: MD5 (deprecated), SHA-256, bcrypt password hash üçün
Performance və Optimizasiya
- Throughput: Vaxt vahidində işlənən məlumat həcmi (req/sec, Mbps)
- Latency: Bir əməliyyatın başdan sona vaxtı (ms)
- Checksum: Data integrity yoxlama. MD5, SHA-256 hash funksiyaları
- Compression: Gzip, Brotli kimi məlumat sıxlaşdırma
Messaging Patterns
- Fan-out: Bir mesajın çoxlu receiver-ə göndərilməsi (pub-sub)
- Fan-in: Çoxlu mənbədən mesajları toplama (aggregation)
- Request-Reply: Sinxron mesaj mübadiləsi
- Fire-and-Forget: Asinxron mesaj göndərmə, cavab gözlənmir
Deployment Strategiyaları
- Blue-Green: İki paralel environment, instant switch
- Canary: Kiçik user qrupuna yeni versiya test etmə
- Rolling: Tədricən serverləri yenilə
- A/B Testing: İki variantı müqayisə etmə
Modern Arxitektura Konseptləri
- Service Mesh: Mikroservislər arasında kommunikasiya təbəqəsi. Istio, Linkerd
- Microfrontends: Frontend-i mikroservislər kimi bölmə
- Event Sourcing: State dəyişikliklərini event kimi saxlama
- CQRS: Command Query Responsibility Separation
Container və Orkestrasiya
- Kubernetes: Container orkestrasiya platforması
- Docker: Konteyner texnologiyası
- Pod: K8s-də ən kiçik deployment vahidi
- Service Discovery: Dinamik service location tapma
Əsas Problemlər
- Terminoloji qarışıqlıq: Çox konsept və termin → Practical nümunələrlə öyrən
- Üst-üstə çıxan anlayışlar: Bəzi konseptlər oxşardır → Fərqləri aydın et
- Context dependency: Konseptlərin istifadə yeri dəyişkən → Real-world case study-lər araşdır
- Trend dəyişikliyi: Texnologiyalar tez köhnəlir → Industry news-lərə diqqət yetir
- Çox derinə getmək: Interview-də detallara batmaq → High-level başa düşmə kifayət edir