Ravindra BagaleCourses & study guides English Track your progress

Project: DynamoDB Transactions सह Seat Booking

Chioma व Vikram: SeatHold project. Transactions apply; CRUD link for Put.

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

  • Keys
  • Hold txn
  • Idempotency
  • Hold TTL
  • Lab

1. रोजचे उदाहरण: cinema counter

Slip = hold. Condition = FREE only. TTL = timer.

2. Vertical steps

Patterns -> Keys -> Hold -> Pay/Release -> CleanupPatternsKeysHoldPay/ReleaseCleanup
Cleanup

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

हे का लागतं?

Partial = double-book. Atomic booking = txn.

4. हे काय आहे?

हे काय आहे?

EVENT/SEAT + ORDER; FREE→HELD→SOLD; TTL release.

5. कसं करायचं

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

  1. 6 patterns.
  2. Draw.
  3. Create+Put.
  4. Hold txn.
  5. Conflict.
  6. TTL+pay+cleanup.

6. Key sketch

EntityPKSK
SeatEVENT#9SEAT#A-12
OrderORDER#o1META
GSIUSER#u1ORDER#ts

7. Commands

aws dynamodb create-table --table-name lab-ddm-seats \
  --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 --region ap-south-1
# Hold (SDK preferred). CLI sketch:
aws dynamodb transact-write-items --client-request-token book-o1-u1 --transact-items '[
 {"Update":{"TableName":"lab-ddm-seats","Key":{"PK":{"S":"EVENT#9"},"SK":{"S":"SEAT#A-12"}},
  "ConditionExpression":"#S = :free","UpdateExpression":"SET #S = :held, HoldUser = :u, HoldExpires = :t ADD Version :one",
  "ExpressionAttributeNames":{"#S":"Status"},
  "ExpressionAttributeValues":{":free":{"S":"FREE"},":held":{"S":"HELD"},":u":{"S":"u1"},":t":{"N":"1730003600"},":one":{"N":"1"}}}},
 {"Put":{"TableName":"lab-ddm-seats","Item":{"PK":{"S":"ORDER#o1"},"SK":{"S":"META"},"Seat":{"S":"A-12"},"Status":{"S":"PENDING"}}}}
]'
# Output: {} on success. Cancelled = read CancellationReasons. Meaning: atomic hold+order.

Create; condition; token; SDK link.

8. Industry stories

  • Events
  • Airlines
  • Health
  • EdTech
  • Retail
  • Gov

9. Lab

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

  1. Start.
  2. Hold.
  3. TTL+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
CancelReasons
BlindCondition
Token clashNew token
HotShard
ForeverTTL
PartialTxn
RewriteLink
LeaveDelete
No verVersion

25. Troubleshooting checklist

  1. Taken.
  2. Token.
  3. Shard.
  4. Epoch.
  5. Read.

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.

प्र. Optimistic?

Multi-item → txn.

प्र. Get txn?

Yes UI.

प्र. Pay fail?

Release.

प्र. Max?

100.

27. Interview Q&A

प्र. Double-book?

Txn+condition.

प्र. Idempotent?

Token.

प्र. Pay fail?

Release.

प्र. Reasons?

Per-item.

प्र. MNC heat

Shard.

प्र. Services

One txn.

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

Ravindra Bagale's Tip (EN)

Atomic hold+order with a condition — never two lonely Puts.

Ravindra Bagale's Tip (MR)

Hold+order एका txn मध्ये; condition विसरायचं नाही.

Tip (HI)

होल्ड और ऑर्डर एक ट्रांज़ैक्शन में — अकेले Put नहीं।

घरी करून बघा

  1. States.
  2. Lab.
  3. Pay/release.

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

  1. Keys.
  2. Txn.
  3. Idempotent+TTL.
  4. Cleanup.

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

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

उजळणी card: Atomic hold. Lonely Puts. Txn hold + token. Condition → order → token → reasons. One story.
उजळणी card: Atomic hold · PNG download करा · Card page उघडा
उजळणी card: Hold TTL. Stuck holds. TTL or release. Set → enable → pay/release → test. Release path.
उजळणी card: Hold TTL · PNG download करा · Card page उघडा
तुलना: Lonely Puts vs TransactWrite. Lonely Puts: दोन Puts partial होऊ शकतात. TransactWrite: एका TransactWrite मध्ये hold+order.
तुलना: Lonely Puts vs TransactWrite · PNG download करा · Card page उघडा
तुलना: Forever HELD vs Hold TTL/release. Forever HELD: Expiry नसलेलं HELD अडकतं. Hold TTL/release: TTL किंवा release → FREE.
तुलना: Forever HELD vs Hold TTL/release · PNG download करा · Card page उघडा
मुलाखत card: FREE condition. Blind hold. Condition FREE. Two clients → cancel → reasons.
मुलाखत card: FREE condition · PNG download करा · Card page उघडा
मुलाखत card: ClientRequest token. Double submit. Idempotent token. Same safe; new payload new token.
मुलाखत card: ClientRequest token · PNG download करा · Card page उघडा
मुलाखत card: FREE HELD SOLD. No states. State machine. Draw → txns → TTL.
मुलाखत card: FREE HELD SOLD · PNG download करा · Card page उघडा
मुलाखत card: Zone shards. Hot event. Zone shard. Load → shard → retest.
मुलाखत card: Zone shards · PNG download करा · Card page उघडा

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

सराव Tasks

या scenario बद्दल

Maple Leaf Books हा टोरांटो मधला पुस्तक विक्री व्यवसाय आहे. Emily Tremblay त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे CAD मध्ये मोजले जातात आणि AWS resources ca-central-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Txn

का: Atomic.

काय करायचं: Txn hold तर 1.

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

सोपं FREE

का: Condition.

काय करायचं: FREE condition तर 1.

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

सोपं Token

का: Retry.

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

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

सोपं TTL

का: Abandon.

काय करायचं: Hold TTL तर 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 दाबा.

सोपं States

का: Machine.

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

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

सोपं Release

का: Compensate.

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

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

मध्यम Reasons

का: Debug.

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

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

मध्यम Keys

का: Model.

काय करायचं: EVENT/SEAT तर 1.

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

मध्यम Pay

का: Flow.

काय करायचं: Pay SOLD तर 1.

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

मध्यम Optimistic

का: Scope.

काय करायचं: Need txn तर 1.

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

मध्यम Flow

का: Steps.

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

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

अवघड Shard

का: Scale.

काय करायचं: Shard event तर 1.

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

अवघड 100

का: Limit.

काय करायचं: 100 cap तर 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 txn तर 1.

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