Буцах

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).