Буцах
Software Design & Techniques & Best Practices
Software Design & Techniques & Best Practices
Нийтлэг хэрэглэгддэг архитектур дизайний ойлголтууд
Event Driven Architecture — Queues, async processing, DLQ.
- Event Driven Architecture (queue, dead letter queue) — Queues, async processing, DLQ for failed or poison messages.
- RabbitMQ vs Kafka vs AWS SQS (Cloud Based) vs Upstash (Dedicated Service) — RabbitMQ vs Kafka vs AWS SQS, when to use which.
Concurrency ба lock-ууд — Idempotency, optimistic/pessimistic locking.
- Idempotency — Safe retries and duplicate requests; critical for disbursements and payments.
- Optimistic locking — Version/timestamp-based concurrency; detect conflicts before commit.
- Pessimistic locking — Lock rows or sections to prevent concurrent updates; when to use.
API design — REST conventions, versioning, idempotency.
- API design best practices — REST conventions, versioning, idempotency (critical for disbursements).
- Breaking changes vs. backward compatibility — When to break backward compatibility.
- Incremental changes & Obsoletion — Database schema changes, API changes, obsoletion, etc.
- GraphQL vs REST — GraphQL vs REST, when to use which.
Microservices vs Monolith — Microservices vs Monolith, when to use which.
- Microservices - How micro do I need? — How microservices work. How to scale?
- Monolith - How monolithic do I need? — How monolithic works. How to scale?
- Modular Monolith & Mono-repo? — How to combine and get the best of both worlds.
Data Science — Data science & Data Warehouse & Data Pipeline & Tools.
- Data & Data science — Data science гэж юу вэ? Хэрхэн ашиглагддаг вэ?
- Data Warehouse — BigQuery & Business Intelligence Platforms (Metabase, Lightdash, Apache Superset, etc.)
- Data Pipeline — Airflow, Fivetran, etc.
Homework
1) RabbitMQ + consumer + Docker Compose with web API
- Install RabbitMQ.
- Create a consumer that processes messages from a queue.
- Use Docker Compose to run RabbitMQ, the consumer, and your web API app together.
2) Metabase + DB + dashboard
- Install Metabase.
- Connect Metabase to your database.
- Create a simple dashboard (e.g. a few charts or tables based on your data).