Ravindra BagaleCourses & study guides English Track your progress

Project: Social Feed आणि Inbox — DynamoDB Adjacency Lists

Priya व Kenji: edges + fan-out + sparse unread. Modeling + Streams.

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

  • Edges
  • Fan-out
  • Unread GSI
  • Industries
  • Lab

1. रोजचे उदाहरण: follow वही

FOLLOW# edges; fan-out pointers; sparse unread.

2. Vertical steps

Patterns -> Edges -> Fan-out -> Lab -> CleanupPatternsEdgesFan-outLabCleanup
Cleanup

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

हे का लागतं?

No SQL join feed — edges + fan-out.

4. हे काय आहे?

हे काय आहे?

FOLLOW edges; FEED# items; sparse unread GSI.

5. कसं करायचं

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

  1. Patterns.
  2. Draw.
  3. Create+edges.
  4. Feed.
  5. Streams paper.
  6. Delete.

6. Key sketch

EntityPKSK
FollowUSER#aFOLLOW#b
ReverseUSER#bFOLLOWER#a
FeedUSER#aFEED#...
PostPOST#p9META

7. Commands

aws dynamodb create-table --table-name lab-ddl-social \
  --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
aws dynamodb put-item --table-name lab-ddl-social --item '{"PK":{"S":"USER#a"},"SK":{"S":"FOLLOW#b"},"EntityType":{"S":"Follow"}}'
aws dynamodb put-item --table-name lab-ddl-social --item '{"PK":{"S":"USER#b"},"SK":{"S":"FOLLOWER#a"},"EntityType":{"S":"Follower"}}'
aws dynamodb query --table-name lab-ddl-social --key-condition-expression "PK = :pk AND begins_with(SK, :f)" \
  --expression-attribute-values '{":pk":{"S":"USER#a"},":f":{"S":"FOLLOW#"}}'
# Output: who a follows. Meaning: adjacency Query.

Both-way edges; Query; celebs then Streams.

8. Industry stories

  • Social
  • EdTech
  • Corp
  • Gaming
  • News
  • SaaS

9. Lab

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

  1. Paper.
  2. Lab.
  3. Streams+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
JoinEdges
One-wayBoth
Sync 1MAsync
No sparseSparse
ScanQuery
Fat feedThin
CelebSpecial
No typeAdd
LeaveDelete

25. Troubleshooting checklist

  1. Prefix.
  2. Both.
  3. ISO SK.
  4. Lag.
  5. Sparse attr.

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.

प्र. Graph?

Often no.

प्र. Fan-out?

Write+special.

प्र. Streams?

Scale yes.

प्र. Model?

Yes.

27. Interview Q&A

प्र. Adj?

Edges.

प्र. SK?

FOLLOW#.

प्र. Fan-out?

Push.

प्र. Unread?

Sparse.

प्र. MNC

Hybrid.

प्र. Thin

Pointer.

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

Ravindra Bagale's Tip (EN)

Edges first; fan-out second; celebrities get a special door.

Ravindra Bagale's Tip (MR)

आधी edges; मग fan-out; celebs वेगळे.

Tip (HI)

पहले edges, फिर fan-out, celebrity अलग।

घरी करून बघा

  1. Draw.
  2. Lab.
  3. Streams bullets.

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

  1. Edges.
  2. Feed.
  3. Sparse.
  4. Streams.

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

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

उजळणी card: Follow edges. No SQL join feed. Both-way edges. Patterns → put → Query → reverse. Reverse habit.
उजळणी card: Follow edges · PNG download करा · Card page उघडा
उजळणी card: Feed fan-out. Celeb trap. Thin + async celebs. Sync → measure → Streams. Thin feed.
उजळणी card: Feed fan-out · PNG download करा · Card page उघडा
तुलना: Follow edge vs Feed item. Follow edge: Graph. Feed item: Timeline.
तुलना: Follow edge vs Feed item · PNG download करा · Card page उघडा
तुलना: Sync fan-out vs Streams async. Sync fan-out: Simple. Streams async: Scale.
तुलना: Sync fan-out vs Streams async · PNG download करा · Card page उघडा
मुलाखत card: Both-way edges. One-way. Both edges. Two Puts → Query.
मुलाखत card: Both-way edges · PNG download करा · Card page उघडा
मुलाखत card: Query FEED#. Bad SK time. ISO FEED# SK. Put → Query → order.
मुलाखत card: Query FEED# · PNG download करा · Card page उघडा
मुलाखत card: Unread sparse. Fat unread index. Sparse unread. Set → query → clear.
मुलाखत card: Unread sparse · PNG download करा · Card page उघडा
मुलाखत card: Celebrity path. Sync celeb. Async celeb. Threshold → async → age.
मुलाखत card: Celebrity path · PNG download करा · Card page उघडा

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

सराव Tasks

या scenario बद्दल

Ahmednagar Sugar Co-op हा अहिल्यानगर मधला साखर सहकारी व्यवसाय आहे. Balasaheb Pawar त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Edges

का: Model.

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

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

सोपं FOLLOW#

का: SK.

काय करायचं: FOLLOW# तर 1.

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

सोपं Reverse

का: Both.

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

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

सोपं Feed SK

का: Feed.

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

सोपं Edge

का: Sketch.

काय करायचं: pk/sk.

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

सोपं Link

का: Reuse.

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

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

मध्यम Fan-out

का: Write.

काय करायचं: Fan-out तर 1.

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

मध्यम Celebs

का: Scale.

काय करायचं: Celebs special तर 1.

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

मध्यम Unread

का: GSI.

काय करायचं: Sparse unread तर 1.

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

मध्यम Thin

का: Size.

काय करायचं: Thin pointer तर 1.

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

मध्यम Checks

का: List.

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

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

अवघड Streams

का: Async.

काय करायचं: Streams fan-out तर 1.

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

अवघड No join

का: Mindset.

काय करायचं: No join तर 1.

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

अवघड Query

का: Shape.

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