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
3. हे का लागतं?
हे का लागतं?
Partial = double-book. Atomic booking = txn.
4. हे काय आहे?
हे काय आहे?
EVENT/SEAT + ORDER; FREE→HELD→SOLD; TTL release.
5. कसं करायचं
कसं करायचं (step by step)
- 6 patterns.
- Draw.
- Create+Put.
- Hold txn.
- Conflict.
- TTL+pay+cleanup.
6. Key sketch
| Entity | PK | SK |
|---|---|---|
| Seat | EVENT#9 | SEAT#A-12 |
| Order | ORDER#o1 | META |
| GSI | USER#u1 | ORDER#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)
- Start.
- Hold.
- TTL+cleanup.
Cleanup
- Lab delete करा.
- Confirm gone.
10. Ops checklist (ship आधी)
- TTL attr + seconds.
- Delete policy.
- PITR on.
- RPO/RTO doc.
- Multi-region rules.
- DAX miss path.
- Tags.
- 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 | अर्थ |
|---|---|
| TTL | Epoch seconds नंतर delete |
| Soft delete | Flag; item राहतो |
| PITR | Continuous restore window |
| Global Table | Multi-region replica |
| LWW | Last write जिंकते |
| DAX | In-memory cache |
| Adjacency | Relationship edges |
| Fan-out | एक write → अनेक copies |
14. Practice: मोठ्याने explain
- 60s delete modes.
- 60s PITR vs backup.
- 60s GT.
- 60s DAX.
- 60s CartLite.
- 60s social.
- Record ×2.
15. Safe lab hygiene
- Budget alert.
- lab- prefix.
- Delete paid extras.
- GT write plan.
- Tags.
- S3 cleanup.
16. या set ची links
- Modeling
- Transactions
- Streams
- CRUD TTL
- Intro
17. Delete / archive pad
| Need | Prefer | Why |
|---|---|---|
| Undo | Soft flag | Restore |
| Hard expiry | TTL | Auto |
| Cold keep | S3 | Cheap |
| Mistake | PITR | Restore |
18. दहा oral drills
- TTL units?
- Instant?
- PITR window?
- GT conflict?
- Sticky?
- DAX vs?
- Cart PK?
- Lines PK?
- Follow SK?
- Unread GSI?
19. RPO / RTO mini workshop
- RPO minutes.
- RTO.
- Map tools.
- Drill.
- Owner.
20. Cost watch list
- Backup storage
- GT writes
- DAX idle
- Export/S3
- TTL→Streams
21. Project Definition of Done
- Patterns done.
- Samples.
- Lab hygiene.
- Condition/txn.
- Cleanup notes.
- Oral.
22. Batch आतील links
- TTL→Backup
- GT→hot
- DAX after model
- P1 reuse
- P2 reuse
23. Quick self-check
- TTL delay?
- Soft vs hard?
- PITR start?
- GT no?
- DAX≠key fix?
- Cart keys?
- Follow edge?
- Cleanup habit?
24. सामान्य errors आणि fixes
प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.
| Error / लक्षण | Fix |
|---|---|
| Cancel | Reasons |
| Blind | Condition |
| Token clash | New token |
| Hot | Shard |
| Forever | TTL |
| Partial | Txn |
| Rewrite | Link |
| Leave | Delete |
| No ver | Version |
25. Troubleshooting checklist
- Taken.
- Token.
- Shard.
- Epoch.
- 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 नहीं।
घरी करून बघा
- States.
- Lab.
- Pay/release.
थोडक्यात सांगायचं तर
- Keys.
- Txn.
- Idempotent+TTL.
- Cleanup.
उजळणी, मुलाखत आणि तुलना cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.
सराव Tasks
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.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं FREE
का: Condition.
काय करायचं: FREE condition तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Token
का: Retry.
काय करायचं: Token तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं TTL
का: Abandon.
काय करायचं: Hold TTL तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Describe
का: CLI.
काय करायचं: describe.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं States
का: Machine.
काय करायचं: three.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
सोपं Release
का: Compensate.
काय करायचं: Release तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Reasons
का: Debug.
काय करायचं: Reasons तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Keys
का: Model.
काय करायचं: EVENT/SEAT तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Pay
का: Flow.
काय करायचं: Pay SOLD तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Optimistic
का: Scope.
काय करायचं: Need txn तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Flow
का: Steps.
काय करायचं: keys.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
अवघड Shard
का: Scale.
काय करायचं: Shard event तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड 100
का: Limit.
काय करायचं: 100 cap तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड Lab
का: Hygiene.
काय करायचं: Delete lab तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड Link
का: Reuse.
काय करायचं: Link txn तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.