Stop Building Like a Developer.
Start Thinking Like an Architect.
After 8 weeks you stop memorising patterns. You make decisions and defend them with trade-offs, failure modes, and real numbers.
One codebase, Tadka: a food-ordering system that grows from a monolith into four services and a gateway. The last three weeks add AI engineering on the same system: RAG, tools and MCP, evals, cost. The branches are pre-built, so all 40 live hours go to breaking things, reading traces, and arguing trade-offs. Not for beginners: you should already have built APIs, databases, and apps or services.
December batch waitlist is open. Capped at 25 seats.
Scrub the evolution
Monolith + schema-per-domain
Week 1
What broke
Baseline: one deployable app, bounded contexts in folders, not five repos on day one.
What we earned
Start as a monolith with schema-per-domain so later extraction is a move, not a rewrite.
Measured, not marketed
Failure to Fix Evidence
Every move in the cohort is earned by a reproducible break, then fixed with captured before/after numbers.
Before
Double-tap POST /orders creates two orders and two charges.
Fix
Idempotency-Key: same key returns 200 with the same order id.
Captured
No key: 2 ids. Same key: 201 then 200.
Before
Sync payment + slow gateway: POST /orders ~9.2s, pool drains.
Fix
Polly timeout + bulkhead; async payment off the request path.
Captured
9.2s to ~2.1s; POST returns in ms.
Before
Payment service down: order pending, charge lost on sync bridge.
Fix
Kafka retains message; Outbox commits event with the order.
Captured
Lag 1, restart, Confirmed, lag 0.
Before
Restaurant rejects after payment settles: order Cancelled, charge stays Completed.
Fix
Compensating Saga: refund-requested Outbox event, both choreography and orchestration modes.
Captured
Refund off: money stuck. Refund on: Cancelled + Refunded. Both saga modes: identical 10-span trace.
How we teach
Every Decision Gets an ADR
This is the shape of every decision we write in class. Hiring managers care about this more than a certificate line on LinkedIn. A real decision from Week 4 of Tadka (ADR-028: Transactional Outbox + Inbox). We do not grade your copies.
How do we publish order events to Kafka without losing messages or double-charging?
Direct dual-write (DB + Kafka), Kafka transactions (EOS), Transactional Outbox + Inbox, or CDC/Debezium
Transactional Outbox on the producer, Inbox on the consumer.
Write the event into an outbox row in the same Postgres transaction as the order. One commit, both land or neither. A relay publishes to Kafka. Consumers deduplicate via an inbox table. You get exactly-once effect on at-least-once delivery.
More moving parts: outbox table, relay loop, inbox per consumer. Polling adds a little latency. But it is just code and two small tables. No new infra beyond Kafka.
Dual-write loses events on crash between DB commit and Kafka publish (Day 8 wound). Naive consumer double-charges on Kafka redelivery. Relay without SKIP LOCKED double-publishes when scaled to N pods.
At high volume, swap the polling relay for CDC (Debezium) or a library outbox like MassTransit. Add a DLQ when you hit a real poison message.
We write this shape in class: options, trade-offs, what breaks, when to revisit. You can keep a copy for interviews. There is no homework mark and no fail for C#.
66 decisions across 8 weeks
Full index ships in the Tadka repo. Below: one headline per week.
Monolith, API + hardening
- ADR-002 · monolith-first
- ADR-003 · schema-per-domain
- ADR-011 · idempotency
- ADR-012 · optimistic concurrency
Scale the database + cache
- ADR-014 · indexing strategy
- ADR-016 · read replica + split
- ADR-019 · cache stampede lock
Brownout + first extraction
- ADR-021 · timeout + bulkhead
- ADR-023 · async payment
- ADR-024 · extract Payment
Kafka + security
- ADR-028 · Outbox + Inbox
- ADR-029 · saga choreography
- ADR-052 · field-level PII encryption
4 services, gateway + traces
- ADR-035 · API gateway YARP
- ADR-037 · event-carried read model
- ADR-040 · OpenTelemetry
Chaos, load test + cost
- ADR-043 · circuit breaker
- ADR-059 · backpressure admission control
- ADR-064 · live cloud deployment (Azure Container Apps)
AI: retrieval, cache + tools
AI engineering week. You write the decisions in class, in the same seven fields.
AI: evals, LLMOps + graduation
AI engineering week. You write the decisions in class, in the same seven fields.
The shift
Developer approach vs architect approach
Most engineers keep shipping features. Architects argue about what breaks at 10x and what that costs.
Developer Approach
Architect Approach
The capstone
Tadka: a teaching system, not a production app
We build only what is needed to learn architecture and system design.
One codebase through the architecture arc, then an AI assistant added on top. Scrub it in the hero above. You clone it and run it, so class time goes to decisions, traces, and failures, not typing.
66 ADRs
The repo documents the major moves. In class we write the seven fields on the board. We do not grade a homework pile.
4 services + gateway
The arc in the repo: monolith toward YARP, Kafka, a local menu replica. Enough to learn the split, not a production estate.
Load test readout
k6 smoke to stress: find the knee on Grafana. Week 6, measured, not guessed.
Cost model + portfolio doc
₹ honest minimal vs built stack, as a teaching readout. A template you can keep. We do not grade it.
AI assistant module
Weeks 6 to 8: a small assistant inside Tadka. It can be switched off, it checks who is asking, and it only reads. It cannot place an order.
Evals + AI cost sheet
A golden test set, traces without personal data, and cost per 1,000 orders worked out from assumptions you can change.
Built with
The demo is .NET. The thinking works in Java, Go, or Node too.
Two tracks, same class
Run it in .NET or decide in your stack
Tadka ships in C#. Class is the same for everyone: decisions, diagrams, and a running demo.
Track A: run it in .NET
- Clone
day-NNbranches and run Docker Compose - The CRUD is already in the repo, so class goes to decisions and failures.
- Break-kits with before/after numbers, when that day uses them
Track B: decide in your stack (Java / Node / Go)
- Run the same Docker stack and k6 scripts: contracts, lag, traces, dashboards
- Weekly
option-space.mdmaps patterns to your stack - Weeks 5 to 8: read Grafana and Jaeger, write the ADR for your stack. The AI ideas (untrusted model output, tool permissions, evals) are the same in any language.
Not for beginners. You should already have built APIs, databases, and apps or services. Non-.NET people run the same class.
Week by week
8 Weeks: Distributed Systems, then AI Engineering
Each week builds on the last. Saturday is 3 hours, Sunday is 2. Weeks 1 to 6 are the architecture core. Weeks 6 to 8 add AI engineering on the same Tadka codebase. Short pre-reads come before class, so live time goes to decisions. The repo has more: break-kits, toys, extra ADRs. We do not teach every file in the five live hours.
Weeks with a scrubber milestone sync with the hero explorer above.
Foundation, Domain Modeling & Hardening
You learn to start a system the way an architect does: write down the numbers, pick a monolith on purpose, and make sure two taps on Pay do not charge the customer twice.
- · Developer to architect: ADRs, the four-step, scale numbers you can defend
- · Domain model and schema-per-domain in one Postgres
- · Double-tap, lost update, SMS after commit. REST contract and errors are a pre-read.
Scaling the Monolith
You see what really breaks first when orders grow, and fix it in the right order: the query, then the cache, and only then more servers.
- · When the query dies: index, pool, replica, before you add app boxes
- · Redis: cache-aside, and when the cache lies
- · Live status without polling. A cache key matches text exactly, but what if two questions mean the same? That comes back in Week 7.
Payment Brownout & First Service Extraction
You watch a slow payment gateway freeze every order. Then you fix it with timeouts and a circuit breaker, and split Payment out only when there is a real reason.
- · Slow gateway: timeout, bulkhead, retry, circuit breaker
- · The four questions before you split. Extract Payment.
- · HTTP this week, Kafka next, on purpose. A model call is also a slow, flaky dependency, so the same rules apply.
Distributed Backbone & Security
You make Orders, Payment, and Kafka agree without one big transaction. You also decide who is allowed to call what.
- · Dual-write, Outbox, saga: one database transaction is no longer enough
- · At-least-once delivery, not exactly-once magic
- · Auth at the service, not only the gateway. Who is calling decides what is allowed, for a user and later for an AI tool.
Four Services, Gateway & Observability
You finish the four services and the gateway, change a live database without downtime, and follow one order through every service in a single trace.
- · Delivery, Restaurant, and a gateway. Four services. Identity stays a module.
- · Zero-downtime migration: expand, backfill, contract
- · Traces and SLOs you can actually afford
Break It, Load Test It, Cost It. Then AI Foundations.
You break Tadka on purpose, find how many orders it can really take, and work out what that costs in rupees. On Sunday you learn what a model call is, what it costs, and how it fails.
- · Kill Redis or Payment and watch it degrade, not cascade
- · k6: find the knee, tell a rate limiter from real capacity, read the bill
- · Sunday starts AI engineering: tokens, context window, structured output, cost per request
RAG, Semantic Cache, Tools & MCP
You learn the thinking behind an assistant that searches your own data for the right customer only, and can only read. A model may suggest. Your server decides.
- · Embeddings and chunking. Postgres full-text search first, then pgvector, then hybrid. Filter by caller before you search.
- · Semantic cache that never skips auth, price, or freshness
- · Tool calling and MCP: the model suggests, your server decides. Prompt injection, including text hidden in restaurant data.
Evals, LLMOps & Graduation
You learn to test an AI feature, watch it without leaking personal data, and keep its cost in check. Then you take everything into a Design-Swiggy interview and practise it in pairs.
- · Golden test set in CI. Tests that need no model, and when a model-as-judge is worth it.
- · Traces without personal data, prompt versions, model fallback, token budget
- · Design-Swiggy masterclass, an AI design drill, and pair mocks in class
Week 5-6 instruments
What you operate, not just what you draw
Traces, bills, and breaker state. The same panels we use when Tadka breaks on purpose.
Payment=Failing → trace ends at Payment (7 spans, no Delivery). Same dashboards in class.
What This Cohort Is NOT
Honest expectations before you commit your time and money.
Not a syntax bootcamp. The CRUD is already in the repo on every weekly branch. You clone it. Class is boundaries, contracts, and what breaks.
No live coding. We do not write the app with you in class. We do not walk line by line through FluentValidation or DbContext. You read the repo for that.
Not a production food-delivery product. We build only what is needed to learn architecture and system design.
Not a graded course. There is no rubric, no homework marks, no fail for C#. ADRs in class are practice, not a submission pile.
Not an AI tools tour. No model training, no fine-tuning, no agent swarms. We build one small assistant inside Tadka and learn where a model must not be trusted.
Not a certification prep course. We focus on how architects think, not exam memorization.
Not a high-level summary of 28 random systems. We go deep into ONE teaching system.
Not a tool checklist. MongoDB, Elasticsearch, Event Sourcing, and blue-green deployment are discussed as trade-offs, not forced into the build.
Not for beginners. You should already have developed APIs, worked with databases, and built apps or services. This is architectural thinking and structured system design, not how to write your first CRUD API.
Not a course where you install Kafka on day one because the syllabus said so. Each tool shows up when the teaching system actually needs it.
Who Is Teaching This

Deepak Mishra
The Desi Architect · Software Architect, 13+ years
Started from a non-CS background and learned the hard way, through real systems, real outages, and real design reviews. Today he architects distributed systems and AI products for enterprise and SaaS clients used by millions.
Tadka, the teaching system in this cohort, is one he built the same way he teaches it: write the ADR first, then prove it by breaking the running demo on purpose. You clone it. You do not live-code it.
Engineer feedback
From developers making the shift
Quotes are copied as written. A longer one is cut to whole sentences, never reworded.
"Deepak’s teaching stands out. He doesn’t come across as a typical instructor but as a mentor who genuinely guides you in shifting from a developer mindset to that of a working architect. Highly recommended."
- Live CohortWeekend Batch
"This cohort is built around a questioning mindset, which develops our solution thinking approach. That is useful for the architect role and for higher roles too. This is why I highly recommend joining this cohort, to grow that mindset and adapt to the rapidly changing IT industry."
AmanFounding Cohort - 1:1 MentorshipTopmate
"One of the most valuable career conversations I've had. He didn't give me a generic roadmap. He listened, understood my exact situation, and gave me a clear, practical direction I could act on immediately. The focus on fundamentals first, and knowing WHEN to use something rather than just HOW, completely shifted my thinking."
Shaad Ansari1:1 Architecture Session - YouTube Community@desiarchitect
"I'm currently transitioning into an Architect role, and this is the only YouTube channel I've found that truly focuses on that path. I discovered The Desi Architect about 3-4 weeks ago, watched all the videos, and have been eagerly waiting for new content. Finally, the wait is over!"
Mahesh SinghMoving into an Architect role
Investment
Simple pricing
No hidden fees. No upsells. You pay once, you get everything.
Standard
Standard pricing applies to regular registrations
- 40 hours live on weekends: 3 hours Saturday, 2 hours Sunday. Branches are pre-built, so every hour goes to decisions and failures.
- AI engineering in Weeks 6 to 8: RAG, tools and MCP, evals, cost. One small assistant inside Tadka.
- Short pre-reads before class, so live time goes to decisions.
- The Tadka repo: clone it, run it, break it on purpose.
- ADRs written in class, in seven fields you can reuse at work.
- Interview transfer inside the live break. Pair mocks and Design-Swiggy in Week 8.
- Discord community
- Lifetime access to unedited session recordings (watermarked)
First-class guarantee
Attend the first live session. If it is not for you, request a 100% refund before Day 2 starts. No refunds once the second day begins.
Join the Waitlist
Join the December batch waitlist. The batch is capped at 25 seats, so if you are serious about the cohort, sign up below. The cohort costs ₹24,999. We will contact you with joining details and any early bird pricing when the batch opens.
Sign in with your Google account to join the waitlist.
No payment needed to join the waitlist. The cohort costs ₹24,999. We'll notify you first when the batch opens, with any early bird pricing. By joining you agree to our privacy policy.
Frequently Asked Questions
Common questions about the cohort, the curriculum, and who should join.