Ravindra BagaleCourses & study guides English Track your progress

Project: CDC Streams → Lambda → OpenSearch

Maya व Vikram: FindLite CDC to OpenSearch. Streams apply.

या chapter मध्ये तुम्ही काय शिकाल

  • Stream
  • Idempotent
  • Ops
  • Backfill
  • Lab

1. रोजचे उदाहरण: library catalog

Shelves=DDB; cards=search; watch lag.

2. Vertical steps

Patterns -> Stream -> Index -> Alarms -> Backfill -> CleanupPatternsStreamIndexAlarmsBackfillCleanup
Cleanup

3. हे का लागतं?

हे का लागतं?

Search ≠ Query. CDC + idempotent consumer.

4. हे काय आहे?

हे काय आहे?

Streams→Lambda→OS; upsert/delete; backfill.

5. कसं करायचं

कसं करायचं (step by step)

  1. Fields.
  2. Stream.
  3. Handler.
  4. Verify.
  5. Failure path.
  6. Backfill+cleanup.

6. Architecture

PieceRoleNote
DDBSoRKeys
StreamsCDCALO
LambdaIndexIdem
OSSearchAlias
OpsOpsAge

7. Commands

aws dynamodb create-table --table-name lab-ddq-catalog \
  --attribute-definitions AttributeName=PK,AttributeType=S AttributeName=SK,AttributeType=S \
  --key-schema AttributeName=PK,KeyType=HASH AttributeName=SK,KeyType=RANGE \
  --billing-mode PAY_PER_REQUEST \
  --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
  --region ap-south-1
aws dynamodb describe-table --table-name lab-ddq-catalog \
  --query 'Table.LatestStreamArn'
aws dynamodb put-item --table-name lab-ddq-catalog --item '{
 "PK":{"S":"PROD#9"},"SK":{"S":"META"},"title":{"S":"Blue mug"},"tags":{"S":"kitchen"}}'
# Wire event source mapping to Lambda (console/SAM/CDK). Meaning: each change becomes a search mutation.

Idempotent upsert; REMOVE delete; backfill.

8. Industry stories

  • Retail
  • Support
  • HR
  • Media
  • Legal
  • IoT

9. Lab

कसं करायचं (step by step)

  1. Start.
  2. Handler.
  3. Ops+cleanup.

Cleanup

  1. Lab delete करा.
  2. Confirm gone.

10. Ops checklist (ship आधी)

  1. TTL attr + seconds.
  2. Delete policy.
  3. PITR on.
  4. RPO/RTO doc.
  5. Multi-region rules.
  6. DAX miss path.
  7. Tags.
  8. Budget alert.

11. Copy-paste CLI starters

export AWS_DEFAULT_REGION=ap-south-1

# TTL status
aws dynamodb describe-time-to-live --table-name ShopApp

# PITR / continuous backups
aws dynamodb describe-continuous-backups --table-name ShopApp

# On-demand backup
aws dynamodb create-backup --table-name ShopApp --backup-name lab-shop-$(date +%Y%m%d)

# List backups
aws dynamodb list-backups --table-name ShopApp

# Global table description (v2)
aws dynamodb describe-table --table-name ShopApp --query 'Table.Replicas'

12. अजून industry stories

  • Retail TTL carts
  • Bank PITR drill
  • Travel GT
  • Gaming DAX
  • Social edges
  • IoT TTL

13. Glossary

Termअर्थ
TTLEpoch seconds नंतर delete
Soft deleteFlag; item राहतो
PITRContinuous restore window
Global TableMulti-region replica
LWWLast write जिंकते
DAXIn-memory cache
AdjacencyRelationship edges
Fan-outएक write → अनेक copies

14. Practice: मोठ्याने explain

  1. 60s delete modes.
  2. 60s PITR vs backup.
  3. 60s GT.
  4. 60s DAX.
  5. 60s CartLite.
  6. 60s social.
  7. Record ×2.

15. Safe lab hygiene

  • Budget alert.
  • lab- prefix.
  • Delete paid extras.
  • GT write plan.
  • Tags.
  • S3 cleanup.
  • Modeling
  • Transactions
  • Streams
  • CRUD TTL
  • Intro

17. Delete / archive pad

NeedPreferWhy
UndoSoft flagRestore
Hard expiryTTLAuto
Cold keepS3Cheap
MistakePITRRestore

18. दहा oral drills

  1. TTL units?
  2. Instant?
  3. PITR window?
  4. GT conflict?
  5. Sticky?
  6. DAX vs?
  7. Cart PK?
  8. Lines PK?
  9. Follow SK?
  10. Unread GSI?

19. RPO / RTO mini workshop

  1. RPO minutes.
  2. RTO.
  3. Map tools.
  4. Drill.
  5. Owner.

20. Cost watch list

  • Backup storage
  • GT writes
  • DAX idle
  • Export/S3
  • TTL→Streams

21. Project Definition of Done

  1. Patterns done.
  2. Samples.
  3. Lab hygiene.
  4. Condition/txn.
  5. Cleanup notes.
  6. Oral.
  • TTL→Backup
  • GT→hot
  • DAX after model
  • P1 reuse
  • P2 reuse

23. Quick self-check

  1. TTL delay?
  2. Soft vs hard?
  3. PITR start?
  4. GT no?
  5. DAX≠key fix?
  6. Cart keys?
  7. Follow edge?
  8. Cleanup habit?

24. सामान्य errors आणि fixes

प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.

Error / लक्षणFix
TrimmedScale
EOS mythIdempotent
No deleteREMOVE
No DLQDLQ
SilentAlarm
PIIAllow-list
No backfillExport
LeaveDelete
RewriteLink

25. Troubleshooting checklist

  1. Age.
  2. Version.
  3. Mapping.
  4. Bisect.
  5. Reconcile.

26. FAQ

प्र. Single table always?

Related patterns साठी हो; religion नाही.

प्र. RDS अजून?

Joins/SQL reports साठी हो — intro chapter.

प्र. Scan वाईट?

Hot path = Query/Get; Scan rare.

प्र. Put/Get कुठे?

CRUD/CLI/SDK chapters — link.

प्र. Serverless OS?

Ops choice.

प्र. No Lambda?

Possible.

प्र. Exactly?

Idempotent.

प्र. Huge?

Strip/S3.

27. Interview Q&A

प्र. Why OS?

Search.

प्र. View?

NEW_AND_OLD.

प्र. Idem?

Version.

प्र. Poison?

DLQ.

प्र. MNC

Backfill.

प्र. EOS

ALO+idem.

28. Tips — English, मराठी आणि हिंदी

Ravindra Bagale's Tip (EN)

CDC is at-least-once — make the consumer boring and idempotent.

Ravindra Bagale's Tip (MR)

CDC = at-least-once; consumer idempotent ठेवा.

Tip (HI)

CDC कम-से-कम एक बार — consumer idempotent रखें।

घरी करून बघा

  1. Fields.
  2. Diagram.
  3. Alarm.

थोडक्यात सांगायचं तर

  1. Pipe.
  2. Mutations.
  3. Ops.
  4. Cleanup.

उजळणी, मुलाखत आणि तुलना cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: CDC to search. No FT search. CDC pipe. Stream → Lambda → mutate → verify. SoR + search.
उजळणी card: CDC to search · PNG download करा · Card page उघडा
उजळणी card: Idempotent consumer. EOS myth. ALO + DLQ + age. Bisect → DLQ → alarm → backfill. Poison drill.
उजळणी card: Idempotent consumer · PNG download करा · Card page उघडा
तुलना: DynamoDB Query only vs OpenSearch CDC. DynamoDB Query only: फक्त DynamoDB Query. OpenSearch CDC: CDC → OpenSearch.
तुलना: DynamoDB Query only vs OpenSearch CDC · PNG download करा · Card page उघडा
तुलना: Exactly-once claim vs At-least-once + idempotent. Exactly-once claim: Exactly-once समज. At-least-once + idempotent: Idempotent upsert + version.
तुलना: Exactly-once claim vs At-least-once + idempotent · PNG download करा · Card page उघडा
मुलाखत card: Enable stream. No stream. Enable NEW_AND_OLD. Create → ARN → wire.
मुलाखत card: Enable stream · PNG download करा · Card page उघडा
मुलाखत card: Handle REMOVE. Ghost docs. Delete on REMOVE. Put → delete → gone.
मुलाखत card: Handle REMOVE · PNG download करा · Card page उघडा
मुलाखत card: Poison DLQ. Poison stall. DLQ path. Inject → DLQ → fix → replay.
मुलाखत card: Poison DLQ · PNG download करा · Card page उघडा
मुलाखत card: Export backfill. No history. Export then tail. Export → bulk → counts → stream.
मुलाखत card: Export backfill · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.

सराव Tasks

या scenario बद्दल

Milan Furniture हा मिलान मधला फर्निचर व्यवसाय आहे. Giulia Rossi त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे EUR मध्ये मोजले जातात आणि AWS resources eu-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Why OS

का: Search.

काय करायचं: Full-text तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं View

का: Stream.

काय करायचं: NEW_AND_OLD तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं ALO

का: CDC.

काय करायचं: ALO तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं REMOVE

का: Sync.

काय करायचं: REMOVE delete तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Describe

का: CLI.

काय करायचं: describe.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Pipe

का: Arch.

काय करायचं: keys.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

सोपं _id

का: Map.

काय करायचं: PK|SK id तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Idempotent

का: Safe.

काय करायचं: Idempotent तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम IteratorAge

का: Lag.

काय करायचं: IteratorAge तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम DLQ

का: Failure.

काय करायचं: DLQ तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Backfill

का: History.

काय करायचं: Backfill तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Ops

का: Alarms.

काय करायचं: keys.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

अवघड PII

का: Safety.

काय करायचं: Allow-list तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड EOS myth

का: Truth.

काय करायचं: ALO+idem तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड Lab

का: Hygiene.

काय करायचं: Delete lab तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड Link

का: Reuse.

काय करायचं: Link Streams तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.