Ravindra BagaleCourses & study guides English Track your progress

Project: Multi-Tenant SaaS Keys आणि Isolation — DynamoDB

Lena व Vikram: TenantLite. Modeling + LeadingKeys.

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

  • Prefixes
  • IAM
  • GSI
  • Offboard
  • Lab

1. रोजचे उदाहरण: co-working slots

Label=TENANT#. Badge=IAM.

2. Vertical steps

Patterns -> Keys -> IAM -> GSI -> Offboard -> CleanupPatternsKeysIAMGSIOffboardCleanup
Cleanup

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

हे का लागतं?

Prefix + IAM = isolation. UI alone ≠ safety.

4. हे काय आहे?

हे काय आहे?

TENANT# PK; email GSI; LeadingKeys.

5. कसं करायचं

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

  1. Patterns.
  2. Draw.
  3. Create.
  4. IAM.
  5. GSI+offboard.
  6. Cleanup.

6. Key sketch

EntityPKSK
UserTENANT#acmeUSER#u1
SettingsTENANT#acmeSETTINGS
GSITENANT#acmeEMAIL#…

7. Commands

aws dynamodb create-table --table-name lab-ddo-saas \
  --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-ddo-saas --item '{
 "PK":{"S":"TENANT#acme"},"SK":{"S":"USER#u1"},"email":{"S":"a@acme.test"}}'
aws dynamodb query --table-name lab-ddo-saas \
  --key-condition-expression "PK = :pk" \
  --expression-attribute-values '{":pk":{"S":"TENANT#acme"}}'
# IAM sketch (attach to tenant role):
# "Condition":{"ForAllValues:StringLike":{"dynamodb:LeadingKeys":["TENANT#acme"]}}
# Meaning: role can only touch keys beginning TENANT#acme.

JWT tid; GSI prefixed.

8. Industry stories

  • CRM
  • EdTech
  • Health
  • FinTech
  • Logistics
  • Media

9. Lab

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

  1. Start.
  2. IAM.
  3. Offboard+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
Client tidJWT
No IAMLeadingKeys
Global emailPrefixed
ScanQuery
GSI leakPrefix
WhaleIsolate
Soft onlyHard delete
LeaveDelete
RewriteLink

25. Troubleshooting checklist

  1. IAM+app.
  2. Claims.
  3. GSI.
  4. Isolate.
  5. Restore.

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.

प्र. Per table?

Split later.

प्र. CMK?

Optional.

प्र. GDPR?

Prove empty.

प्र. Syntax?

LeadingKeys.

27. Interview Q&A

प्र. Key?

TENANT#.

प्र. IAM?

LeadingKeys.

प्र. Email?

Prefixed GSI.

प्र. Offboard?

Query delete.

प्र. MNC

Isolate.

प्र. Trust?

Never.

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

Ravindra Bagale's Tip (EN)

TENANT# in every key + LeadingKeys — UI filters are not security.

Ravindra Bagale's Tip (MR)

प्रत्येक key ला TENANT# आणि LeadingKeys.

Tip (HI)

हर कुंजी में TENANT# और LeadingKeys — UI सुरक्षा नहीं।

घरी करून बघा

  1. Draw.
  2. IAM.
  3. Offboard.

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

  1. Keys.
  2. IAM.
  3. Offboard.
  4. Cleanup.

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

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

उजळणी card: TENANT# prefix. No prefix. TENANT# + JWT. Draw → Put → Query → JWT. JWT only.
उजळणी card: TENANT# prefix · PNG download करा · Card page उघडा
उजळणी card: LeadingKeys IAM. UI≠security. LeadingKeys. Attach → cross Get → Deny → Trail. Deny demo.
उजळणी card: LeadingKeys IAM · PNG download करा · Card page उघडा
तुलना: UI filter only vs LeadingKeys IAM. UI filter only: फक्त UI hide. LeadingKeys IAM: LeadingKeys Deny.
तुलना: UI filter only vs LeadingKeys IAM · PNG download करा · Card page उघडा
तुलना: Global email PK vs Tenant email GSI. Global email PK: Global email PK टकरतो. Tenant email GSI: TENANT# + EMAIL# GSI.
तुलना: Global email PK vs Tenant email GSI · PNG download करा · Card page उघडा
मुलाखत card: LeadingKeys demo. No condition. LeadingKeys policy. Deny proof.
मुलाखत card: LeadingKeys demo · PNG download करा · Card page उघडा
मुलाखत card: Per-tenant email. Global email. Prefixed email GSI. Same email OK per tenant.
मुलाखत card: Per-tenant email · PNG download करा · Card page उघडा
मुलाखत card: Offboard delete. Hide≠delete. Query delete verify. Ticket → script → verify → audit.
मुलाखत card: Offboard delete · PNG download करा · Card page उघडा
मुलाखत card: Noisy neighbor. Whale throttle. Isolate whale. Insights → split → retest.
मुलाखत card: Noisy neighbor · PNG download करा · Card page उघडा

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

सराव Tasks

या scenario बद्दल

London Legal LLP हा लंडन मधला कायदा सेवा व्यवसाय आहे. Oliver Hughes त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे GBP मध्ये मोजले जातात आणि AWS resources eu-west-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Prefix

का: Isolation.

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

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

सोपं IAM

का: Enforce.

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

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

सोपं JWT

का: Trust.

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

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

सोपं Email

का: Unique.

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

सोपं Keys

का: Sketch.

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

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

सोपं Verify

का: Proof.

काय करायचं: Verify GSI तर 1.

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

मध्यम Offboard

का: GDPR.

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

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

मध्यम No Scan

का: Anti.

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

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

मध्यम GSI

का: Leak.

काय करायचं: GSI prefix तर 1.

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

मध्यम Whale

का: Ops.

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

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

मध्यम IAM

का: Name.

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

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

अवघड Shared

का: Start.

काय करायचं: Shared first तर 1.

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

अवघड UI≠sec

का: Truth.

काय करायचं: UI not enough तर 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 modeling तर 1.

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