Буцах

Software Design & Techniques & Best Practices

Software Design & Techniques & Best Practices

Нийтлэг хэрэглэгддэг архитектур дизайний ойлголтууд

Event Driven ArchitectureQueues, 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.
  • IdempotencySafe retries and duplicate requests; critical for disbursements and payments.
  • Optimistic lockingVersion/timestamp-based concurrency; detect conflicts before commit.
  • Pessimistic lockingLock rows or sections to prevent concurrent updates; when to use.
API designREST conventions, versioning, idempotency.
  • API design best practicesREST conventions, versioning, idempotency (critical for disbursements).
  • Breaking changes vs. backward compatibilityWhen to break backward compatibility.
  • Incremental changes & ObsoletionDatabase schema changes, API changes, obsoletion, etc.
  • GraphQL vs RESTGraphQL vs REST, when to use which.
Microservices vs MonolithMicroservices 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 ScienceData science & Data Warehouse & Data Pipeline & Tools.
  • Data & Data scienceData science гэж юу вэ? Хэрхэн ашиглагддаг вэ?
  • Data WarehouseBigQuery & Business Intelligence Platforms (Metabase, Lightdash, Apache Superset, etc.)
  • Data PipelineAirflow, 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).