tapps-agents 3.5.40__py3-none-any.whl → 3.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/__init__.py +22 -22
- tapps_agents/agents/analyst/__init__.py +5 -5
- tapps_agents/agents/architect/__init__.py +5 -5
- tapps_agents/agents/architect/agent.py +1033 -1033
- tapps_agents/agents/architect/pattern_detector.py +75 -75
- tapps_agents/agents/cleanup/__init__.py +7 -7
- tapps_agents/agents/cleanup/agent.py +445 -445
- tapps_agents/agents/debugger/__init__.py +7 -7
- tapps_agents/agents/debugger/agent.py +310 -310
- tapps_agents/agents/debugger/error_analyzer.py +437 -437
- tapps_agents/agents/designer/__init__.py +5 -5
- tapps_agents/agents/designer/agent.py +786 -786
- tapps_agents/agents/designer/visual_designer.py +638 -638
- tapps_agents/agents/documenter/__init__.py +7 -7
- tapps_agents/agents/documenter/agent.py +531 -531
- tapps_agents/agents/documenter/doc_generator.py +472 -472
- tapps_agents/agents/documenter/doc_validator.py +393 -393
- tapps_agents/agents/documenter/framework_doc_updater.py +493 -493
- tapps_agents/agents/enhancer/__init__.py +7 -7
- tapps_agents/agents/evaluator/__init__.py +7 -7
- tapps_agents/agents/evaluator/agent.py +443 -443
- tapps_agents/agents/evaluator/priority_evaluator.py +641 -641
- tapps_agents/agents/evaluator/quality_analyzer.py +147 -147
- tapps_agents/agents/evaluator/report_generator.py +344 -344
- tapps_agents/agents/evaluator/usage_analyzer.py +192 -192
- tapps_agents/agents/evaluator/workflow_analyzer.py +189 -189
- tapps_agents/agents/implementer/__init__.py +7 -7
- tapps_agents/agents/implementer/agent.py +798 -798
- tapps_agents/agents/implementer/auto_fix.py +1119 -1119
- tapps_agents/agents/implementer/code_generator.py +73 -73
- tapps_agents/agents/improver/__init__.py +1 -1
- tapps_agents/agents/improver/agent.py +753 -753
- tapps_agents/agents/ops/__init__.py +1 -1
- tapps_agents/agents/ops/agent.py +619 -619
- tapps_agents/agents/ops/dependency_analyzer.py +600 -600
- tapps_agents/agents/orchestrator/__init__.py +5 -5
- tapps_agents/agents/orchestrator/agent.py +522 -522
- tapps_agents/agents/planner/__init__.py +7 -7
- tapps_agents/agents/planner/agent.py +1127 -1127
- tapps_agents/agents/reviewer/__init__.py +24 -24
- tapps_agents/agents/reviewer/agent.py +3513 -3513
- tapps_agents/agents/reviewer/aggregator.py +213 -213
- tapps_agents/agents/reviewer/batch_review.py +448 -448
- tapps_agents/agents/reviewer/cache.py +443 -443
- tapps_agents/agents/reviewer/context7_enhancer.py +630 -630
- tapps_agents/agents/reviewer/context_detector.py +203 -203
- tapps_agents/agents/reviewer/docker_compose_validator.py +158 -158
- tapps_agents/agents/reviewer/dockerfile_validator.py +176 -176
- tapps_agents/agents/reviewer/error_handling.py +126 -126
- tapps_agents/agents/reviewer/feedback_generator.py +490 -490
- tapps_agents/agents/reviewer/influxdb_validator.py +316 -316
- tapps_agents/agents/reviewer/issue_tracking.py +169 -169
- tapps_agents/agents/reviewer/library_detector.py +295 -295
- tapps_agents/agents/reviewer/library_patterns.py +268 -268
- tapps_agents/agents/reviewer/maintainability_scorer.py +593 -593
- tapps_agents/agents/reviewer/metric_strategies.py +276 -276
- tapps_agents/agents/reviewer/mqtt_validator.py +160 -160
- tapps_agents/agents/reviewer/output_enhancer.py +105 -105
- tapps_agents/agents/reviewer/pattern_detector.py +241 -241
- tapps_agents/agents/reviewer/performance_scorer.py +357 -357
- tapps_agents/agents/reviewer/phased_review.py +516 -516
- tapps_agents/agents/reviewer/progressive_review.py +435 -435
- tapps_agents/agents/reviewer/react_scorer.py +331 -331
- tapps_agents/agents/reviewer/score_constants.py +228 -228
- tapps_agents/agents/reviewer/score_validator.py +507 -507
- tapps_agents/agents/reviewer/scorer_registry.py +373 -373
- tapps_agents/agents/reviewer/scoring.py +1566 -1566
- tapps_agents/agents/reviewer/service_discovery.py +534 -534
- tapps_agents/agents/reviewer/tools/__init__.py +41 -41
- tapps_agents/agents/reviewer/tools/parallel_executor.py +581 -581
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -250
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -284
- tapps_agents/agents/reviewer/typescript_scorer.py +1142 -1142
- tapps_agents/agents/reviewer/validation.py +208 -208
- tapps_agents/agents/reviewer/websocket_validator.py +132 -132
- tapps_agents/agents/tester/__init__.py +7 -7
- tapps_agents/agents/tester/accessibility_auditor.py +309 -309
- tapps_agents/agents/tester/agent.py +1080 -1080
- tapps_agents/agents/tester/batch_generator.py +54 -54
- tapps_agents/agents/tester/context_learner.py +51 -51
- tapps_agents/agents/tester/coverage_analyzer.py +386 -386
- tapps_agents/agents/tester/coverage_test_generator.py +290 -290
- tapps_agents/agents/tester/debug_enhancer.py +238 -238
- tapps_agents/agents/tester/device_emulator.py +241 -241
- tapps_agents/agents/tester/integration_generator.py +62 -62
- tapps_agents/agents/tester/network_recorder.py +300 -300
- tapps_agents/agents/tester/performance_monitor.py +320 -320
- tapps_agents/agents/tester/test_fixer.py +316 -316
- tapps_agents/agents/tester/test_generator.py +632 -632
- tapps_agents/agents/tester/trace_manager.py +234 -234
- tapps_agents/agents/tester/visual_regression.py +291 -291
- tapps_agents/analysis/pattern_detector.py +36 -36
- tapps_agents/beads/hydration.py +213 -213
- tapps_agents/beads/parse.py +32 -32
- tapps_agents/beads/specs.py +206 -206
- tapps_agents/cli/__init__.py +9 -9
- tapps_agents/cli/__main__.py +8 -8
- tapps_agents/cli/base.py +478 -478
- tapps_agents/cli/command_classifier.py +72 -72
- tapps_agents/cli/commands/__init__.py +2 -2
- tapps_agents/cli/commands/analyst.py +173 -173
- tapps_agents/cli/commands/architect.py +109 -109
- tapps_agents/cli/commands/cleanup_agent.py +92 -92
- tapps_agents/cli/commands/common.py +126 -126
- tapps_agents/cli/commands/debugger.py +90 -90
- tapps_agents/cli/commands/designer.py +112 -112
- tapps_agents/cli/commands/documenter.py +136 -136
- tapps_agents/cli/commands/enhancer.py +110 -110
- tapps_agents/cli/commands/evaluator.py +255 -255
- tapps_agents/cli/commands/health.py +665 -665
- tapps_agents/cli/commands/implementer.py +301 -301
- tapps_agents/cli/commands/improver.py +91 -91
- tapps_agents/cli/commands/knowledge.py +111 -111
- tapps_agents/cli/commands/learning.py +172 -172
- tapps_agents/cli/commands/observability.py +283 -283
- tapps_agents/cli/commands/ops.py +135 -135
- tapps_agents/cli/commands/orchestrator.py +116 -116
- tapps_agents/cli/commands/planner.py +237 -237
- tapps_agents/cli/commands/reviewer.py +1872 -1872
- tapps_agents/cli/commands/status.py +285 -285
- tapps_agents/cli/commands/task.py +227 -219
- tapps_agents/cli/commands/tester.py +191 -191
- tapps_agents/cli/commands/top_level.py +3586 -3586
- tapps_agents/cli/feedback.py +936 -936
- tapps_agents/cli/formatters.py +608 -608
- tapps_agents/cli/help/__init__.py +7 -7
- tapps_agents/cli/help/static_help.py +425 -425
- tapps_agents/cli/network_detection.py +110 -110
- tapps_agents/cli/output_compactor.py +274 -274
- tapps_agents/cli/parsers/__init__.py +2 -2
- tapps_agents/cli/parsers/analyst.py +186 -186
- tapps_agents/cli/parsers/architect.py +167 -167
- tapps_agents/cli/parsers/cleanup_agent.py +228 -228
- tapps_agents/cli/parsers/debugger.py +116 -116
- tapps_agents/cli/parsers/designer.py +182 -182
- tapps_agents/cli/parsers/documenter.py +134 -134
- tapps_agents/cli/parsers/enhancer.py +113 -113
- tapps_agents/cli/parsers/evaluator.py +213 -213
- tapps_agents/cli/parsers/implementer.py +168 -168
- tapps_agents/cli/parsers/improver.py +132 -132
- tapps_agents/cli/parsers/ops.py +159 -159
- tapps_agents/cli/parsers/orchestrator.py +98 -98
- tapps_agents/cli/parsers/planner.py +145 -145
- tapps_agents/cli/parsers/reviewer.py +462 -462
- tapps_agents/cli/parsers/tester.py +124 -124
- tapps_agents/cli/progress_heartbeat.py +254 -254
- tapps_agents/cli/streaming_progress.py +336 -336
- tapps_agents/cli/utils/__init__.py +6 -6
- tapps_agents/cli/utils/agent_lifecycle.py +48 -48
- tapps_agents/cli/utils/error_formatter.py +82 -82
- tapps_agents/cli/utils/error_recovery.py +188 -188
- tapps_agents/cli/utils/output_handler.py +59 -59
- tapps_agents/cli/utils/prompt_enhancer.py +319 -319
- tapps_agents/cli/validators/__init__.py +9 -9
- tapps_agents/cli/validators/command_validator.py +81 -81
- tapps_agents/context7/__init__.py +112 -112
- tapps_agents/context7/agent_integration.py +869 -869
- tapps_agents/context7/analytics.py +382 -382
- tapps_agents/context7/analytics_dashboard.py +299 -299
- tapps_agents/context7/async_cache.py +681 -681
- tapps_agents/context7/backup_client.py +958 -958
- tapps_agents/context7/cache_locking.py +194 -194
- tapps_agents/context7/cache_metadata.py +214 -214
- tapps_agents/context7/cache_prewarm.py +488 -488
- tapps_agents/context7/cache_structure.py +168 -168
- tapps_agents/context7/cache_warming.py +604 -604
- tapps_agents/context7/circuit_breaker.py +376 -376
- tapps_agents/context7/cleanup.py +461 -461
- tapps_agents/context7/commands.py +858 -858
- tapps_agents/context7/credential_validation.py +276 -276
- tapps_agents/context7/cross_reference_resolver.py +168 -168
- tapps_agents/context7/cross_references.py +424 -424
- tapps_agents/context7/doc_manager.py +225 -225
- tapps_agents/context7/fuzzy_matcher.py +369 -369
- tapps_agents/context7/kb_cache.py +404 -404
- tapps_agents/context7/language_detector.py +219 -219
- tapps_agents/context7/library_detector.py +725 -725
- tapps_agents/context7/lookup.py +738 -738
- tapps_agents/context7/metadata.py +258 -258
- tapps_agents/context7/refresh_queue.py +300 -300
- tapps_agents/context7/security.py +373 -373
- tapps_agents/context7/staleness_policies.py +278 -278
- tapps_agents/context7/tiles_integration.py +47 -47
- tapps_agents/continuous_bug_fix/__init__.py +20 -20
- tapps_agents/continuous_bug_fix/bug_finder.py +306 -306
- tapps_agents/continuous_bug_fix/bug_fix_coordinator.py +177 -177
- tapps_agents/continuous_bug_fix/commit_manager.py +178 -178
- tapps_agents/continuous_bug_fix/continuous_bug_fixer.py +322 -322
- tapps_agents/continuous_bug_fix/proactive_bug_finder.py +285 -285
- tapps_agents/core/__init__.py +298 -298
- tapps_agents/core/adaptive_cache_config.py +432 -432
- tapps_agents/core/agent_base.py +647 -647
- tapps_agents/core/agent_cache.py +466 -466
- tapps_agents/core/agent_learning.py +1865 -1865
- tapps_agents/core/analytics_dashboard.py +563 -563
- tapps_agents/core/analytics_enhancements.py +597 -597
- tapps_agents/core/anonymization.py +274 -274
- tapps_agents/core/artifact_context_builder.py +293 -0
- tapps_agents/core/ast_parser.py +228 -228
- tapps_agents/core/async_file_ops.py +402 -402
- tapps_agents/core/best_practice_consultant.py +299 -299
- tapps_agents/core/brownfield_analyzer.py +299 -299
- tapps_agents/core/brownfield_review.py +541 -541
- tapps_agents/core/browser_controller.py +513 -513
- tapps_agents/core/capability_registry.py +418 -418
- tapps_agents/core/change_impact_analyzer.py +190 -190
- tapps_agents/core/checkpoint_manager.py +377 -377
- tapps_agents/core/code_generator.py +329 -329
- tapps_agents/core/code_validator.py +276 -276
- tapps_agents/core/command_registry.py +327 -327
- tapps_agents/core/config.py +33 -0
- tapps_agents/core/context_gathering/__init__.py +2 -2
- tapps_agents/core/context_gathering/repository_explorer.py +28 -28
- tapps_agents/core/context_intelligence/__init__.py +2 -2
- tapps_agents/core/context_intelligence/relevance_scorer.py +24 -24
- tapps_agents/core/context_intelligence/token_budget_manager.py +27 -27
- tapps_agents/core/context_manager.py +240 -240
- tapps_agents/core/cursor_feedback_monitor.py +146 -146
- tapps_agents/core/cursor_verification.py +290 -290
- tapps_agents/core/customization_loader.py +280 -280
- tapps_agents/core/customization_schema.py +260 -260
- tapps_agents/core/customization_template.py +238 -238
- tapps_agents/core/debug_logger.py +124 -124
- tapps_agents/core/design_validator.py +298 -298
- tapps_agents/core/diagram_generator.py +226 -226
- tapps_agents/core/docker_utils.py +232 -232
- tapps_agents/core/document_generator.py +617 -617
- tapps_agents/core/domain_detector.py +30 -30
- tapps_agents/core/error_envelope.py +454 -454
- tapps_agents/core/error_handler.py +270 -270
- tapps_agents/core/estimation_tracker.py +189 -189
- tapps_agents/core/eval_prompt_engine.py +116 -116
- tapps_agents/core/evaluation_base.py +119 -119
- tapps_agents/core/evaluation_models.py +320 -320
- tapps_agents/core/evaluation_orchestrator.py +225 -225
- tapps_agents/core/evaluators/__init__.py +7 -7
- tapps_agents/core/evaluators/architectural_evaluator.py +205 -205
- tapps_agents/core/evaluators/behavioral_evaluator.py +160 -160
- tapps_agents/core/evaluators/performance_profile_evaluator.py +160 -160
- tapps_agents/core/evaluators/security_posture_evaluator.py +148 -148
- tapps_agents/core/evaluators/spec_compliance_evaluator.py +181 -181
- tapps_agents/core/exceptions.py +107 -107
- tapps_agents/core/expert_config_generator.py +293 -293
- tapps_agents/core/export_schema.py +202 -202
- tapps_agents/core/external_feedback_models.py +102 -102
- tapps_agents/core/external_feedback_storage.py +213 -213
- tapps_agents/core/fallback_strategy.py +314 -314
- tapps_agents/core/feedback_analyzer.py +162 -162
- tapps_agents/core/feedback_collector.py +178 -178
- tapps_agents/core/git_operations.py +445 -445
- tapps_agents/core/hardware_profiler.py +151 -151
- tapps_agents/core/instructions.py +324 -324
- tapps_agents/core/io_guardrails.py +69 -69
- tapps_agents/core/issue_manifest.py +249 -249
- tapps_agents/core/issue_schema.py +139 -139
- tapps_agents/core/json_utils.py +128 -128
- tapps_agents/core/knowledge_graph.py +446 -446
- tapps_agents/core/language_detector.py +296 -296
- tapps_agents/core/learning_confidence.py +242 -242
- tapps_agents/core/learning_dashboard.py +246 -246
- tapps_agents/core/learning_decision.py +384 -384
- tapps_agents/core/learning_explainability.py +578 -578
- tapps_agents/core/learning_export.py +287 -287
- tapps_agents/core/learning_integration.py +228 -228
- tapps_agents/core/llm_behavior.py +232 -232
- tapps_agents/core/long_duration_support.py +786 -786
- tapps_agents/core/mcp_setup.py +106 -106
- tapps_agents/core/memory_integration.py +396 -396
- tapps_agents/core/meta_learning.py +666 -666
- tapps_agents/core/module_path_sanitizer.py +199 -199
- tapps_agents/core/multi_agent_orchestrator.py +382 -382
- tapps_agents/core/network_errors.py +125 -125
- tapps_agents/core/nfr_validator.py +336 -336
- tapps_agents/core/offline_mode.py +158 -158
- tapps_agents/core/output_contracts.py +300 -300
- tapps_agents/core/output_formatter.py +300 -300
- tapps_agents/core/path_normalizer.py +174 -174
- tapps_agents/core/path_validator.py +322 -322
- tapps_agents/core/pattern_library.py +250 -250
- tapps_agents/core/performance_benchmark.py +301 -301
- tapps_agents/core/performance_monitor.py +184 -184
- tapps_agents/core/playwright_mcp_controller.py +771 -771
- tapps_agents/core/policy_loader.py +135 -135
- tapps_agents/core/progress.py +166 -166
- tapps_agents/core/project_profile.py +354 -354
- tapps_agents/core/project_type_detector.py +454 -454
- tapps_agents/core/prompt_base.py +223 -223
- tapps_agents/core/prompt_learning/__init__.py +2 -2
- tapps_agents/core/prompt_learning/learning_loop.py +24 -24
- tapps_agents/core/prompt_learning/project_prompt_store.py +25 -25
- tapps_agents/core/prompt_learning/skills_prompt_analyzer.py +35 -35
- tapps_agents/core/prompt_optimization/__init__.py +6 -6
- tapps_agents/core/prompt_optimization/ab_tester.py +114 -114
- tapps_agents/core/prompt_optimization/correlation_analyzer.py +160 -160
- tapps_agents/core/prompt_optimization/progressive_refiner.py +129 -129
- tapps_agents/core/prompt_optimization/prompt_library.py +37 -37
- tapps_agents/core/requirements_evaluator.py +431 -431
- tapps_agents/core/resource_aware_executor.py +449 -449
- tapps_agents/core/resource_monitor.py +343 -343
- tapps_agents/core/resume_handler.py +298 -298
- tapps_agents/core/retry_handler.py +197 -197
- tapps_agents/core/review_checklists.py +479 -479
- tapps_agents/core/role_loader.py +201 -201
- tapps_agents/core/role_template_loader.py +201 -201
- tapps_agents/core/runtime_mode.py +60 -60
- tapps_agents/core/security_scanner.py +342 -342
- tapps_agents/core/skill_agent_registry.py +194 -194
- tapps_agents/core/skill_integration.py +208 -208
- tapps_agents/core/skill_loader.py +492 -492
- tapps_agents/core/skill_template.py +341 -341
- tapps_agents/core/skill_validator.py +478 -478
- tapps_agents/core/stack_analyzer.py +35 -35
- tapps_agents/core/startup.py +174 -174
- tapps_agents/core/storage_manager.py +397 -397
- tapps_agents/core/storage_models.py +166 -166
- tapps_agents/core/story_evaluator.py +410 -410
- tapps_agents/core/subprocess_utils.py +170 -170
- tapps_agents/core/task_duration.py +296 -296
- tapps_agents/core/task_memory.py +582 -582
- tapps_agents/core/task_state.py +226 -226
- tapps_agents/core/tech_stack_priorities.py +208 -208
- tapps_agents/core/temp_directory.py +194 -194
- tapps_agents/core/template_merger.py +600 -600
- tapps_agents/core/template_selector.py +280 -280
- tapps_agents/core/test_generator.py +286 -286
- tapps_agents/core/tiered_context.py +253 -253
- tapps_agents/core/token_monitor.py +345 -345
- tapps_agents/core/traceability.py +254 -254
- tapps_agents/core/trajectory_tracker.py +50 -50
- tapps_agents/core/unicode_safe.py +143 -143
- tapps_agents/core/unified_cache_config.py +170 -170
- tapps_agents/core/unified_state.py +324 -324
- tapps_agents/core/validate_cursor_setup.py +237 -237
- tapps_agents/core/validation_registry.py +136 -136
- tapps_agents/core/validators/__init__.py +4 -4
- tapps_agents/core/validators/python_validator.py +87 -87
- tapps_agents/core/verification_agent.py +90 -90
- tapps_agents/core/visual_feedback.py +644 -644
- tapps_agents/core/workflow_validator.py +197 -197
- tapps_agents/core/worktree.py +367 -367
- tapps_agents/docker/__init__.py +10 -10
- tapps_agents/docker/analyzer.py +186 -186
- tapps_agents/docker/debugger.py +229 -229
- tapps_agents/docker/error_patterns.py +216 -216
- tapps_agents/epic/__init__.py +22 -22
- tapps_agents/epic/beads_sync.py +115 -115
- tapps_agents/epic/markdown_sync.py +105 -105
- tapps_agents/epic/models.py +96 -96
- tapps_agents/experts/__init__.py +163 -163
- tapps_agents/experts/agent_integration.py +243 -243
- tapps_agents/experts/auto_generator.py +331 -331
- tapps_agents/experts/base_expert.py +536 -536
- tapps_agents/experts/builtin_registry.py +261 -261
- tapps_agents/experts/business_metrics.py +565 -565
- tapps_agents/experts/cache.py +266 -266
- tapps_agents/experts/confidence_breakdown.py +306 -306
- tapps_agents/experts/confidence_calculator.py +336 -336
- tapps_agents/experts/confidence_metrics.py +236 -236
- tapps_agents/experts/domain_config.py +311 -311
- tapps_agents/experts/domain_detector.py +550 -550
- tapps_agents/experts/domain_utils.py +84 -84
- tapps_agents/experts/expert_config.py +113 -113
- tapps_agents/experts/expert_engine.py +465 -465
- tapps_agents/experts/expert_registry.py +744 -744
- tapps_agents/experts/expert_synthesizer.py +70 -70
- tapps_agents/experts/governance.py +197 -197
- tapps_agents/experts/history_logger.py +312 -312
- tapps_agents/experts/knowledge/README.md +180 -180
- tapps_agents/experts/knowledge/accessibility/accessible-forms.md +331 -331
- tapps_agents/experts/knowledge/accessibility/aria-patterns.md +344 -344
- tapps_agents/experts/knowledge/accessibility/color-contrast.md +285 -285
- tapps_agents/experts/knowledge/accessibility/keyboard-navigation.md +332 -332
- tapps_agents/experts/knowledge/accessibility/screen-readers.md +282 -282
- tapps_agents/experts/knowledge/accessibility/semantic-html.md +355 -355
- tapps_agents/experts/knowledge/accessibility/testing-accessibility.md +369 -369
- tapps_agents/experts/knowledge/accessibility/wcag-2.1.md +296 -296
- tapps_agents/experts/knowledge/accessibility/wcag-2.2.md +211 -211
- tapps_agents/experts/knowledge/agent-learning/best-practices.md +715 -715
- tapps_agents/experts/knowledge/agent-learning/pattern-extraction.md +282 -282
- tapps_agents/experts/knowledge/agent-learning/prompt-optimization.md +320 -320
- tapps_agents/experts/knowledge/ai-frameworks/model-optimization.md +90 -90
- tapps_agents/experts/knowledge/ai-frameworks/openvino-patterns.md +260 -260
- tapps_agents/experts/knowledge/api-design-integration/api-gateway-patterns.md +309 -309
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +521 -521
- tapps_agents/experts/knowledge/api-design-integration/api-versioning.md +421 -421
- tapps_agents/experts/knowledge/api-design-integration/async-protocol-patterns.md +61 -61
- tapps_agents/experts/knowledge/api-design-integration/contract-testing.md +221 -221
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +489 -489
- tapps_agents/experts/knowledge/api-design-integration/fastapi-patterns.md +360 -360
- tapps_agents/experts/knowledge/api-design-integration/fastapi-testing.md +262 -262
- tapps_agents/experts/knowledge/api-design-integration/graphql-patterns.md +582 -582
- tapps_agents/experts/knowledge/api-design-integration/grpc-best-practices.md +499 -499
- tapps_agents/experts/knowledge/api-design-integration/mqtt-patterns.md +455 -455
- tapps_agents/experts/knowledge/api-design-integration/rate-limiting.md +507 -507
- tapps_agents/experts/knowledge/api-design-integration/restful-api-design.md +618 -618
- tapps_agents/experts/knowledge/api-design-integration/websocket-patterns.md +480 -480
- tapps_agents/experts/knowledge/cloud-infrastructure/cloud-native-patterns.md +175 -175
- tapps_agents/experts/knowledge/cloud-infrastructure/container-health-checks.md +261 -261
- tapps_agents/experts/knowledge/cloud-infrastructure/containerization.md +222 -222
- tapps_agents/experts/knowledge/cloud-infrastructure/cost-optimization.md +122 -122
- tapps_agents/experts/knowledge/cloud-infrastructure/disaster-recovery.md +153 -153
- tapps_agents/experts/knowledge/cloud-infrastructure/dockerfile-patterns.md +285 -285
- tapps_agents/experts/knowledge/cloud-infrastructure/infrastructure-as-code.md +187 -187
- tapps_agents/experts/knowledge/cloud-infrastructure/kubernetes-patterns.md +253 -253
- tapps_agents/experts/knowledge/cloud-infrastructure/multi-cloud-strategies.md +155 -155
- tapps_agents/experts/knowledge/cloud-infrastructure/serverless-architecture.md +200 -200
- tapps_agents/experts/knowledge/code-quality-analysis/README.md +16 -16
- tapps_agents/experts/knowledge/code-quality-analysis/code-metrics.md +137 -137
- tapps_agents/experts/knowledge/code-quality-analysis/complexity-analysis.md +181 -181
- tapps_agents/experts/knowledge/code-quality-analysis/technical-debt-patterns.md +191 -191
- tapps_agents/experts/knowledge/data-privacy-compliance/anonymization.md +313 -313
- tapps_agents/experts/knowledge/data-privacy-compliance/ccpa.md +255 -255
- tapps_agents/experts/knowledge/data-privacy-compliance/consent-management.md +282 -282
- tapps_agents/experts/knowledge/data-privacy-compliance/data-minimization.md +275 -275
- tapps_agents/experts/knowledge/data-privacy-compliance/data-retention.md +297 -297
- tapps_agents/experts/knowledge/data-privacy-compliance/data-subject-rights.md +383 -383
- tapps_agents/experts/knowledge/data-privacy-compliance/encryption-privacy.md +285 -285
- tapps_agents/experts/knowledge/data-privacy-compliance/gdpr.md +344 -344
- tapps_agents/experts/knowledge/data-privacy-compliance/hipaa.md +385 -385
- tapps_agents/experts/knowledge/data-privacy-compliance/privacy-by-design.md +280 -280
- tapps_agents/experts/knowledge/database-data-management/acid-vs-cap.md +164 -164
- tapps_agents/experts/knowledge/database-data-management/backup-and-recovery.md +182 -182
- tapps_agents/experts/knowledge/database-data-management/data-modeling.md +172 -172
- tapps_agents/experts/knowledge/database-data-management/database-design.md +187 -187
- tapps_agents/experts/knowledge/database-data-management/flux-query-optimization.md +342 -342
- tapps_agents/experts/knowledge/database-data-management/influxdb-connection-patterns.md +432 -432
- tapps_agents/experts/knowledge/database-data-management/influxdb-patterns.md +442 -442
- tapps_agents/experts/knowledge/database-data-management/migration-strategies.md +216 -216
- tapps_agents/experts/knowledge/database-data-management/nosql-patterns.md +259 -259
- tapps_agents/experts/knowledge/database-data-management/scalability-patterns.md +184 -184
- tapps_agents/experts/knowledge/database-data-management/sql-optimization.md +175 -175
- tapps_agents/experts/knowledge/database-data-management/time-series-modeling.md +444 -444
- tapps_agents/experts/knowledge/development-workflow/README.md +16 -16
- tapps_agents/experts/knowledge/development-workflow/automation-best-practices.md +216 -216
- tapps_agents/experts/knowledge/development-workflow/build-strategies.md +198 -198
- tapps_agents/experts/knowledge/development-workflow/deployment-patterns.md +205 -205
- tapps_agents/experts/knowledge/development-workflow/git-workflows.md +205 -205
- tapps_agents/experts/knowledge/documentation-knowledge-management/README.md +16 -16
- tapps_agents/experts/knowledge/documentation-knowledge-management/api-documentation-patterns.md +231 -231
- tapps_agents/experts/knowledge/documentation-knowledge-management/documentation-standards.md +191 -191
- tapps_agents/experts/knowledge/documentation-knowledge-management/knowledge-management.md +171 -171
- tapps_agents/experts/knowledge/documentation-knowledge-management/technical-writing-guide.md +192 -192
- tapps_agents/experts/knowledge/observability-monitoring/alerting-patterns.md +461 -461
- tapps_agents/experts/knowledge/observability-monitoring/apm-tools.md +459 -459
- tapps_agents/experts/knowledge/observability-monitoring/distributed-tracing.md +367 -367
- tapps_agents/experts/knowledge/observability-monitoring/logging-strategies.md +478 -478
- tapps_agents/experts/knowledge/observability-monitoring/metrics-and-monitoring.md +510 -510
- tapps_agents/experts/knowledge/observability-monitoring/observability-best-practices.md +492 -492
- tapps_agents/experts/knowledge/observability-monitoring/open-telemetry.md +573 -573
- tapps_agents/experts/knowledge/observability-monitoring/slo-sli-sla.md +419 -419
- tapps_agents/experts/knowledge/performance/anti-patterns.md +284 -284
- tapps_agents/experts/knowledge/performance/api-performance.md +256 -256
- tapps_agents/experts/knowledge/performance/caching.md +327 -327
- tapps_agents/experts/knowledge/performance/database-performance.md +252 -252
- tapps_agents/experts/knowledge/performance/optimization-patterns.md +327 -327
- tapps_agents/experts/knowledge/performance/profiling.md +297 -297
- tapps_agents/experts/knowledge/performance/resource-management.md +293 -293
- tapps_agents/experts/knowledge/performance/scalability.md +306 -306
- tapps_agents/experts/knowledge/security/owasp-top10.md +209 -209
- tapps_agents/experts/knowledge/security/secure-coding-practices.md +207 -207
- tapps_agents/experts/knowledge/security/threat-modeling.md +220 -220
- tapps_agents/experts/knowledge/security/vulnerability-patterns.md +342 -342
- tapps_agents/experts/knowledge/software-architecture/docker-compose-patterns.md +314 -314
- tapps_agents/experts/knowledge/software-architecture/microservices-patterns.md +379 -379
- tapps_agents/experts/knowledge/software-architecture/service-communication.md +316 -316
- tapps_agents/experts/knowledge/testing/best-practices.md +310 -310
- tapps_agents/experts/knowledge/testing/coverage-analysis.md +293 -293
- tapps_agents/experts/knowledge/testing/mocking.md +256 -256
- tapps_agents/experts/knowledge/testing/test-automation.md +276 -276
- tapps_agents/experts/knowledge/testing/test-data.md +271 -271
- tapps_agents/experts/knowledge/testing/test-design-patterns.md +280 -280
- tapps_agents/experts/knowledge/testing/test-maintenance.md +236 -236
- tapps_agents/experts/knowledge/testing/test-strategies.md +311 -311
- tapps_agents/experts/knowledge/user-experience/information-architecture.md +325 -325
- tapps_agents/experts/knowledge/user-experience/interaction-design.md +363 -363
- tapps_agents/experts/knowledge/user-experience/prototyping.md +293 -293
- tapps_agents/experts/knowledge/user-experience/usability-heuristics.md +337 -337
- tapps_agents/experts/knowledge/user-experience/usability-testing.md +311 -311
- tapps_agents/experts/knowledge/user-experience/user-journeys.md +296 -296
- tapps_agents/experts/knowledge/user-experience/user-research.md +373 -373
- tapps_agents/experts/knowledge/user-experience/ux-principles.md +340 -340
- tapps_agents/experts/knowledge_freshness.py +321 -321
- tapps_agents/experts/knowledge_ingestion.py +438 -438
- tapps_agents/experts/knowledge_need_detector.py +93 -93
- tapps_agents/experts/knowledge_validator.py +382 -382
- tapps_agents/experts/observability.py +440 -440
- tapps_agents/experts/passive_notifier.py +238 -238
- tapps_agents/experts/proactive_orchestrator.py +32 -32
- tapps_agents/experts/rag_chunker.py +205 -205
- tapps_agents/experts/rag_embedder.py +152 -152
- tapps_agents/experts/rag_evaluation.py +299 -299
- tapps_agents/experts/rag_index.py +303 -303
- tapps_agents/experts/rag_metrics.py +293 -293
- tapps_agents/experts/rag_safety.py +263 -263
- tapps_agents/experts/report_generator.py +296 -296
- tapps_agents/experts/setup_wizard.py +441 -441
- tapps_agents/experts/simple_rag.py +431 -431
- tapps_agents/experts/vector_rag.py +354 -354
- tapps_agents/experts/weight_distributor.py +304 -304
- tapps_agents/health/__init__.py +24 -24
- tapps_agents/health/base.py +75 -75
- tapps_agents/health/checks/__init__.py +22 -22
- tapps_agents/health/checks/automation.py +127 -127
- tapps_agents/health/checks/context7_cache.py +210 -210
- tapps_agents/health/checks/environment.py +116 -116
- tapps_agents/health/checks/execution.py +170 -170
- tapps_agents/health/checks/knowledge_base.py +187 -187
- tapps_agents/health/checks/outcomes.py +324 -324
- tapps_agents/health/collector.py +280 -280
- tapps_agents/health/dashboard.py +137 -137
- tapps_agents/health/metrics.py +151 -151
- tapps_agents/health/orchestrator.py +271 -271
- tapps_agents/health/registry.py +166 -166
- tapps_agents/hooks/__init__.py +33 -33
- tapps_agents/hooks/config.py +140 -140
- tapps_agents/hooks/events.py +135 -135
- tapps_agents/hooks/executor.py +128 -128
- tapps_agents/hooks/manager.py +143 -143
- tapps_agents/integration/__init__.py +8 -8
- tapps_agents/integration/service_integrator.py +121 -121
- tapps_agents/integrations/__init__.py +10 -10
- tapps_agents/integrations/clawdbot.py +525 -525
- tapps_agents/integrations/memory_bridge.py +356 -356
- tapps_agents/mcp/__init__.py +18 -18
- tapps_agents/mcp/gateway.py +112 -112
- tapps_agents/mcp/servers/__init__.py +13 -13
- tapps_agents/mcp/servers/analysis.py +204 -204
- tapps_agents/mcp/servers/context7.py +198 -198
- tapps_agents/mcp/servers/filesystem.py +218 -218
- tapps_agents/mcp/servers/git.py +201 -201
- tapps_agents/mcp/tool_registry.py +115 -115
- tapps_agents/quality/__init__.py +54 -54
- tapps_agents/quality/coverage_analyzer.py +379 -379
- tapps_agents/quality/enforcement.py +82 -82
- tapps_agents/quality/gates/__init__.py +37 -37
- tapps_agents/quality/gates/approval_gate.py +255 -255
- tapps_agents/quality/gates/base.py +84 -84
- tapps_agents/quality/gates/exceptions.py +43 -43
- tapps_agents/quality/gates/policy_gate.py +195 -195
- tapps_agents/quality/gates/registry.py +239 -239
- tapps_agents/quality/gates/security_gate.py +156 -156
- tapps_agents/quality/quality_gates.py +369 -369
- tapps_agents/quality/secret_scanner.py +335 -335
- tapps_agents/session/__init__.py +19 -19
- tapps_agents/session/manager.py +256 -256
- tapps_agents/simple_mode/__init__.py +66 -66
- tapps_agents/simple_mode/agent_contracts.py +357 -357
- tapps_agents/simple_mode/beads_hooks.py +151 -151
- tapps_agents/simple_mode/code_snippet_handler.py +382 -382
- tapps_agents/simple_mode/documentation_manager.py +395 -395
- tapps_agents/simple_mode/documentation_reader.py +187 -187
- tapps_agents/simple_mode/file_inference.py +292 -292
- tapps_agents/simple_mode/framework_change_detector.py +268 -268
- tapps_agents/simple_mode/intent_parser.py +510 -510
- tapps_agents/simple_mode/learning_progression.py +358 -358
- tapps_agents/simple_mode/nl_handler.py +700 -700
- tapps_agents/simple_mode/onboarding.py +253 -253
- tapps_agents/simple_mode/orchestrators/__init__.py +38 -38
- tapps_agents/simple_mode/orchestrators/base.py +185 -185
- tapps_agents/simple_mode/orchestrators/breakdown_orchestrator.py +49 -49
- tapps_agents/simple_mode/orchestrators/brownfield_orchestrator.py +135 -135
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2700 -2667
- tapps_agents/simple_mode/orchestrators/deliverable_checklist.py +349 -349
- tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py +53 -53
- tapps_agents/simple_mode/orchestrators/epic_orchestrator.py +122 -122
- tapps_agents/simple_mode/orchestrators/explore_orchestrator.py +184 -184
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
- tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py +206 -206
- tapps_agents/simple_mode/orchestrators/pr_orchestrator.py +237 -237
- tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py +222 -222
- tapps_agents/simple_mode/orchestrators/requirements_tracer.py +262 -262
- tapps_agents/simple_mode/orchestrators/resume_orchestrator.py +210 -210
- tapps_agents/simple_mode/orchestrators/review_orchestrator.py +161 -161
- tapps_agents/simple_mode/orchestrators/test_orchestrator.py +82 -82
- tapps_agents/simple_mode/output_aggregator.py +340 -340
- tapps_agents/simple_mode/result_formatters.py +598 -598
- tapps_agents/simple_mode/step_dependencies.py +382 -382
- tapps_agents/simple_mode/step_results.py +276 -276
- tapps_agents/simple_mode/streaming.py +388 -388
- tapps_agents/simple_mode/variations.py +129 -129
- tapps_agents/simple_mode/visual_feedback.py +238 -238
- tapps_agents/simple_mode/zero_config.py +274 -274
- tapps_agents/suggestions/__init__.py +8 -8
- tapps_agents/suggestions/inline_suggester.py +52 -52
- tapps_agents/templates/__init__.py +8 -8
- tapps_agents/templates/microservice_generator.py +274 -274
- tapps_agents/utils/env_validator.py +291 -291
- tapps_agents/workflow/__init__.py +171 -171
- tapps_agents/workflow/acceptance_verifier.py +132 -132
- tapps_agents/workflow/agent_handlers/__init__.py +41 -41
- tapps_agents/workflow/agent_handlers/analyst_handler.py +75 -75
- tapps_agents/workflow/agent_handlers/architect_handler.py +107 -107
- tapps_agents/workflow/agent_handlers/base.py +84 -84
- tapps_agents/workflow/agent_handlers/debugger_handler.py +100 -100
- tapps_agents/workflow/agent_handlers/designer_handler.py +110 -110
- tapps_agents/workflow/agent_handlers/documenter_handler.py +94 -94
- tapps_agents/workflow/agent_handlers/implementer_handler.py +235 -235
- tapps_agents/workflow/agent_handlers/ops_handler.py +62 -62
- tapps_agents/workflow/agent_handlers/orchestrator_handler.py +43 -43
- tapps_agents/workflow/agent_handlers/planner_handler.py +98 -98
- tapps_agents/workflow/agent_handlers/registry.py +119 -119
- tapps_agents/workflow/agent_handlers/reviewer_handler.py +119 -119
- tapps_agents/workflow/agent_handlers/tester_handler.py +69 -69
- tapps_agents/workflow/analytics_accessor.py +337 -337
- tapps_agents/workflow/analytics_alerts.py +416 -416
- tapps_agents/workflow/analytics_dashboard_cursor.py +281 -281
- tapps_agents/workflow/analytics_dual_write.py +103 -103
- tapps_agents/workflow/analytics_integration.py +119 -119
- tapps_agents/workflow/analytics_query_parser.py +278 -278
- tapps_agents/workflow/analytics_visualizer.py +259 -259
- tapps_agents/workflow/artifact_helper.py +204 -204
- tapps_agents/workflow/audit_logger.py +263 -263
- tapps_agents/workflow/auto_execution_config.py +340 -340
- tapps_agents/workflow/auto_progression.py +586 -586
- tapps_agents/workflow/branch_cleanup.py +349 -349
- tapps_agents/workflow/checkpoint.py +256 -256
- tapps_agents/workflow/checkpoint_manager.py +178 -178
- tapps_agents/workflow/code_artifact.py +179 -179
- tapps_agents/workflow/common_enums.py +96 -96
- tapps_agents/workflow/confirmation_handler.py +130 -130
- tapps_agents/workflow/context_analyzer.py +222 -222
- tapps_agents/workflow/context_artifact.py +230 -230
- tapps_agents/workflow/cursor_chat.py +94 -94
- tapps_agents/workflow/cursor_executor.py +2337 -2196
- tapps_agents/workflow/cursor_skill_helper.py +516 -516
- tapps_agents/workflow/dependency_resolver.py +244 -244
- tapps_agents/workflow/design_artifact.py +156 -156
- tapps_agents/workflow/detector.py +751 -751
- tapps_agents/workflow/direct_execution_fallback.py +301 -301
- tapps_agents/workflow/docs_artifact.py +168 -168
- tapps_agents/workflow/enforcer.py +389 -389
- tapps_agents/workflow/enhancement_artifact.py +142 -142
- tapps_agents/workflow/error_recovery.py +806 -806
- tapps_agents/workflow/event_bus.py +183 -183
- tapps_agents/workflow/event_log.py +612 -612
- tapps_agents/workflow/events.py +63 -63
- tapps_agents/workflow/exceptions.py +43 -43
- tapps_agents/workflow/execution_graph.py +498 -498
- tapps_agents/workflow/execution_plan.py +126 -126
- tapps_agents/workflow/file_utils.py +186 -186
- tapps_agents/workflow/gate_evaluator.py +182 -182
- tapps_agents/workflow/gate_integration.py +200 -200
- tapps_agents/workflow/graph_visualizer.py +130 -130
- tapps_agents/workflow/health_checker.py +206 -206
- tapps_agents/workflow/logging_helper.py +243 -243
- tapps_agents/workflow/manifest.py +582 -582
- tapps_agents/workflow/marker_writer.py +250 -250
- tapps_agents/workflow/message_formatter.py +188 -188
- tapps_agents/workflow/messaging.py +325 -325
- tapps_agents/workflow/metadata_models.py +91 -91
- tapps_agents/workflow/metrics_integration.py +226 -226
- tapps_agents/workflow/migration_utils.py +116 -116
- tapps_agents/workflow/models.py +148 -111
- tapps_agents/workflow/nlp_config.py +198 -198
- tapps_agents/workflow/nlp_error_handler.py +207 -207
- tapps_agents/workflow/nlp_executor.py +163 -163
- tapps_agents/workflow/nlp_parser.py +528 -528
- tapps_agents/workflow/observability_dashboard.py +451 -451
- tapps_agents/workflow/observer.py +170 -170
- tapps_agents/workflow/ops_artifact.py +257 -257
- tapps_agents/workflow/output_passing.py +214 -214
- tapps_agents/workflow/parallel_executor.py +463 -463
- tapps_agents/workflow/planning_artifact.py +179 -179
- tapps_agents/workflow/preset_loader.py +285 -285
- tapps_agents/workflow/preset_recommender.py +270 -270
- tapps_agents/workflow/progress_logger.py +145 -145
- tapps_agents/workflow/progress_manager.py +303 -303
- tapps_agents/workflow/progress_monitor.py +186 -186
- tapps_agents/workflow/progress_updates.py +423 -423
- tapps_agents/workflow/quality_artifact.py +158 -158
- tapps_agents/workflow/quality_loopback.py +101 -101
- tapps_agents/workflow/recommender.py +387 -387
- tapps_agents/workflow/remediation_loop.py +166 -166
- tapps_agents/workflow/result_aggregator.py +300 -300
- tapps_agents/workflow/review_artifact.py +185 -185
- tapps_agents/workflow/schema_validator.py +522 -522
- tapps_agents/workflow/session_handoff.py +178 -178
- tapps_agents/workflow/skill_invoker.py +648 -648
- tapps_agents/workflow/state_manager.py +756 -756
- tapps_agents/workflow/state_persistence_config.py +331 -331
- tapps_agents/workflow/status_monitor.py +449 -449
- tapps_agents/workflow/step_checkpoint.py +314 -314
- tapps_agents/workflow/step_details.py +201 -201
- tapps_agents/workflow/story_models.py +147 -147
- tapps_agents/workflow/streaming.py +416 -416
- tapps_agents/workflow/suggestion_engine.py +552 -552
- tapps_agents/workflow/testing_artifact.py +186 -186
- tapps_agents/workflow/timeline.py +158 -158
- tapps_agents/workflow/token_integration.py +209 -209
- tapps_agents/workflow/validation.py +217 -217
- tapps_agents/workflow/visual_feedback.py +391 -391
- tapps_agents/workflow/workflow_chain.py +95 -95
- tapps_agents/workflow/workflow_summary.py +219 -219
- tapps_agents/workflow/worktree_manager.py +724 -724
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/METADATA +672 -672
- tapps_agents-3.6.0.dist-info/RECORD +758 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/licenses/LICENSE +22 -22
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +0 -324
- tapps_agents-3.5.40.dist-info/RECORD +0 -760
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/top_level.txt +0 -0
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
# ACID vs CAP Theorem
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
ACID and CAP are fundamental concepts for understanding database guarantees. ACID focuses on transaction reliability, while CAP describes trade-offs in distributed systems.
|
|
6
|
-
|
|
7
|
-
## ACID Properties
|
|
8
|
-
|
|
9
|
-
### Atomicity
|
|
10
|
-
|
|
11
|
-
**All or Nothing:**
|
|
12
|
-
- Transaction completes entirely or not at all
|
|
13
|
-
- No partial updates
|
|
14
|
-
- Rollback on failure
|
|
15
|
-
|
|
16
|
-
**Example:**
|
|
17
|
-
```sql
|
|
18
|
-
BEGIN;
|
|
19
|
-
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
|
|
20
|
-
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
|
|
21
|
-
COMMIT;
|
|
22
|
-
-- Both succeed or both fail
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Consistency
|
|
26
|
-
|
|
27
|
-
**Valid State Transitions:**
|
|
28
|
-
- Database remains in valid state
|
|
29
|
-
- Constraints always satisfied
|
|
30
|
-
- Referential integrity maintained
|
|
31
|
-
|
|
32
|
-
### Isolation
|
|
33
|
-
|
|
34
|
-
**Concurrent Transactions:**
|
|
35
|
-
- Transactions don't interfere
|
|
36
|
-
- Isolation levels: Read Uncommitted, Read Committed, Repeatable Read, Serializable
|
|
37
|
-
|
|
38
|
-
**Isolation Levels:**
|
|
39
|
-
- **Read Uncommitted:** Lowest isolation, dirty reads possible
|
|
40
|
-
- **Read Committed:** No dirty reads, non-repeatable reads possible
|
|
41
|
-
- **Repeatable Read:** No non-repeatable reads, phantom reads possible
|
|
42
|
-
- **Serializable:** Highest isolation, no anomalies
|
|
43
|
-
|
|
44
|
-
### Durability
|
|
45
|
-
|
|
46
|
-
**Permanent Changes:**
|
|
47
|
-
- Committed transactions persist
|
|
48
|
-
- Survives system crashes
|
|
49
|
-
- Written to persistent storage
|
|
50
|
-
|
|
51
|
-
**Implementation:**
|
|
52
|
-
- Write-ahead logging (WAL)
|
|
53
|
-
- Transaction logs
|
|
54
|
-
- Replication
|
|
55
|
-
|
|
56
|
-
## CAP Theorem
|
|
57
|
-
|
|
58
|
-
**Can Only Guarantee Two of Three:**
|
|
59
|
-
|
|
60
|
-
### Consistency
|
|
61
|
-
|
|
62
|
-
**All Nodes See Same Data:**
|
|
63
|
-
- All replicas have same data
|
|
64
|
-
- Strong consistency
|
|
65
|
-
- Synchronous replication
|
|
66
|
-
|
|
67
|
-
### Availability
|
|
68
|
-
|
|
69
|
-
**System Remains Operational:**
|
|
70
|
-
- Every request gets response
|
|
71
|
-
- No downtime
|
|
72
|
-
- No errors (non-failure responses)
|
|
73
|
-
|
|
74
|
-
### Partition Tolerance
|
|
75
|
-
|
|
76
|
-
**Network Partitions Handled:**
|
|
77
|
-
- System continues despite network failures
|
|
78
|
-
- Nodes can't communicate
|
|
79
|
-
- Required for distributed systems
|
|
80
|
-
|
|
81
|
-
## CAP Trade-offs
|
|
82
|
-
|
|
83
|
-
### CP (Consistency + Partition Tolerance)
|
|
84
|
-
|
|
85
|
-
**Sacrifice Availability:**
|
|
86
|
-
- Strong consistency
|
|
87
|
-
- Blocks during partitions
|
|
88
|
-
- Examples: MongoDB (with strong consistency), HBase
|
|
89
|
-
|
|
90
|
-
### AP (Availability + Partition Tolerance)
|
|
91
|
-
|
|
92
|
-
**Sacrifice Consistency:**
|
|
93
|
-
- Always available
|
|
94
|
-
- Eventual consistency
|
|
95
|
-
- Examples: DynamoDB, Cassandra, CouchDB
|
|
96
|
-
|
|
97
|
-
### CA (Consistency + Availability)
|
|
98
|
-
|
|
99
|
-
**Sacrifice Partition Tolerance:**
|
|
100
|
-
- Single-node systems
|
|
101
|
-
- Not truly distributed
|
|
102
|
-
- Examples: Traditional SQL databases (single instance)
|
|
103
|
-
|
|
104
|
-
## Real-World Implications
|
|
105
|
-
|
|
106
|
-
### SQL Databases
|
|
107
|
-
|
|
108
|
-
**Typically ACID + CP:**
|
|
109
|
-
- Strong consistency
|
|
110
|
-
- ACID transactions
|
|
111
|
-
- May block during partitions
|
|
112
|
-
- Examples: PostgreSQL, MySQL, Oracle
|
|
113
|
-
|
|
114
|
-
### NoSQL Databases
|
|
115
|
-
|
|
116
|
-
**Various Choices:**
|
|
117
|
-
- **DynamoDB:** AP (configurable consistency)
|
|
118
|
-
- **Cassandra:** AP (tunable consistency)
|
|
119
|
-
- **MongoDB:** CP (with strong consistency)
|
|
120
|
-
- **Redis:** CP (single-node) or AP (cluster mode)
|
|
121
|
-
|
|
122
|
-
### Eventual Consistency
|
|
123
|
-
|
|
124
|
-
**Accept Temporary Inconsistency:**
|
|
125
|
-
- Replicas sync eventually
|
|
126
|
-
- Acceptable for many use cases
|
|
127
|
-
- Conflict resolution needed
|
|
128
|
-
|
|
129
|
-
## Choosing the Right Model
|
|
130
|
-
|
|
131
|
-
### Use ACID When:
|
|
132
|
-
|
|
133
|
-
- Financial transactions
|
|
134
|
-
- Critical data integrity
|
|
135
|
-
- Strong consistency required
|
|
136
|
-
- Traditional SQL databases
|
|
137
|
-
|
|
138
|
-
### Use Eventual Consistency When:
|
|
139
|
-
|
|
140
|
-
- High availability critical
|
|
141
|
-
- Can tolerate temporary inconsistency
|
|
142
|
-
- High write throughput
|
|
143
|
-
- Global distribution
|
|
144
|
-
|
|
145
|
-
### Use Partition Tolerance When:
|
|
146
|
-
|
|
147
|
-
- Distributed system
|
|
148
|
-
- Multiple data centers
|
|
149
|
-
- Network failures possible
|
|
150
|
-
- Scalability needed
|
|
151
|
-
|
|
152
|
-
## Best Practices
|
|
153
|
-
|
|
154
|
-
1. **Understand Requirements:** Consistency vs availability needs
|
|
155
|
-
2. **Choose Appropriate Database:** Match CAP trade-offs
|
|
156
|
-
3. **Design for Failure:** Assume partitions will occur
|
|
157
|
-
4. **Handle Conflicts:** Eventual consistency strategies
|
|
158
|
-
5. **Monitor Consistency:** Track replication lag
|
|
159
|
-
6. **Document Decisions:** Why chosen model
|
|
160
|
-
7. **Test Partition Scenarios:** How system behaves
|
|
161
|
-
8. **Balance Trade-offs:** Match business needs
|
|
162
|
-
9. **Consider Hybrid:** Different models for different data
|
|
163
|
-
10. **Review Regularly:** As requirements change
|
|
164
|
-
|
|
1
|
+
# ACID vs CAP Theorem
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
ACID and CAP are fundamental concepts for understanding database guarantees. ACID focuses on transaction reliability, while CAP describes trade-offs in distributed systems.
|
|
6
|
+
|
|
7
|
+
## ACID Properties
|
|
8
|
+
|
|
9
|
+
### Atomicity
|
|
10
|
+
|
|
11
|
+
**All or Nothing:**
|
|
12
|
+
- Transaction completes entirely or not at all
|
|
13
|
+
- No partial updates
|
|
14
|
+
- Rollback on failure
|
|
15
|
+
|
|
16
|
+
**Example:**
|
|
17
|
+
```sql
|
|
18
|
+
BEGIN;
|
|
19
|
+
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
|
|
20
|
+
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
|
|
21
|
+
COMMIT;
|
|
22
|
+
-- Both succeed or both fail
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Consistency
|
|
26
|
+
|
|
27
|
+
**Valid State Transitions:**
|
|
28
|
+
- Database remains in valid state
|
|
29
|
+
- Constraints always satisfied
|
|
30
|
+
- Referential integrity maintained
|
|
31
|
+
|
|
32
|
+
### Isolation
|
|
33
|
+
|
|
34
|
+
**Concurrent Transactions:**
|
|
35
|
+
- Transactions don't interfere
|
|
36
|
+
- Isolation levels: Read Uncommitted, Read Committed, Repeatable Read, Serializable
|
|
37
|
+
|
|
38
|
+
**Isolation Levels:**
|
|
39
|
+
- **Read Uncommitted:** Lowest isolation, dirty reads possible
|
|
40
|
+
- **Read Committed:** No dirty reads, non-repeatable reads possible
|
|
41
|
+
- **Repeatable Read:** No non-repeatable reads, phantom reads possible
|
|
42
|
+
- **Serializable:** Highest isolation, no anomalies
|
|
43
|
+
|
|
44
|
+
### Durability
|
|
45
|
+
|
|
46
|
+
**Permanent Changes:**
|
|
47
|
+
- Committed transactions persist
|
|
48
|
+
- Survives system crashes
|
|
49
|
+
- Written to persistent storage
|
|
50
|
+
|
|
51
|
+
**Implementation:**
|
|
52
|
+
- Write-ahead logging (WAL)
|
|
53
|
+
- Transaction logs
|
|
54
|
+
- Replication
|
|
55
|
+
|
|
56
|
+
## CAP Theorem
|
|
57
|
+
|
|
58
|
+
**Can Only Guarantee Two of Three:**
|
|
59
|
+
|
|
60
|
+
### Consistency
|
|
61
|
+
|
|
62
|
+
**All Nodes See Same Data:**
|
|
63
|
+
- All replicas have same data
|
|
64
|
+
- Strong consistency
|
|
65
|
+
- Synchronous replication
|
|
66
|
+
|
|
67
|
+
### Availability
|
|
68
|
+
|
|
69
|
+
**System Remains Operational:**
|
|
70
|
+
- Every request gets response
|
|
71
|
+
- No downtime
|
|
72
|
+
- No errors (non-failure responses)
|
|
73
|
+
|
|
74
|
+
### Partition Tolerance
|
|
75
|
+
|
|
76
|
+
**Network Partitions Handled:**
|
|
77
|
+
- System continues despite network failures
|
|
78
|
+
- Nodes can't communicate
|
|
79
|
+
- Required for distributed systems
|
|
80
|
+
|
|
81
|
+
## CAP Trade-offs
|
|
82
|
+
|
|
83
|
+
### CP (Consistency + Partition Tolerance)
|
|
84
|
+
|
|
85
|
+
**Sacrifice Availability:**
|
|
86
|
+
- Strong consistency
|
|
87
|
+
- Blocks during partitions
|
|
88
|
+
- Examples: MongoDB (with strong consistency), HBase
|
|
89
|
+
|
|
90
|
+
### AP (Availability + Partition Tolerance)
|
|
91
|
+
|
|
92
|
+
**Sacrifice Consistency:**
|
|
93
|
+
- Always available
|
|
94
|
+
- Eventual consistency
|
|
95
|
+
- Examples: DynamoDB, Cassandra, CouchDB
|
|
96
|
+
|
|
97
|
+
### CA (Consistency + Availability)
|
|
98
|
+
|
|
99
|
+
**Sacrifice Partition Tolerance:**
|
|
100
|
+
- Single-node systems
|
|
101
|
+
- Not truly distributed
|
|
102
|
+
- Examples: Traditional SQL databases (single instance)
|
|
103
|
+
|
|
104
|
+
## Real-World Implications
|
|
105
|
+
|
|
106
|
+
### SQL Databases
|
|
107
|
+
|
|
108
|
+
**Typically ACID + CP:**
|
|
109
|
+
- Strong consistency
|
|
110
|
+
- ACID transactions
|
|
111
|
+
- May block during partitions
|
|
112
|
+
- Examples: PostgreSQL, MySQL, Oracle
|
|
113
|
+
|
|
114
|
+
### NoSQL Databases
|
|
115
|
+
|
|
116
|
+
**Various Choices:**
|
|
117
|
+
- **DynamoDB:** AP (configurable consistency)
|
|
118
|
+
- **Cassandra:** AP (tunable consistency)
|
|
119
|
+
- **MongoDB:** CP (with strong consistency)
|
|
120
|
+
- **Redis:** CP (single-node) or AP (cluster mode)
|
|
121
|
+
|
|
122
|
+
### Eventual Consistency
|
|
123
|
+
|
|
124
|
+
**Accept Temporary Inconsistency:**
|
|
125
|
+
- Replicas sync eventually
|
|
126
|
+
- Acceptable for many use cases
|
|
127
|
+
- Conflict resolution needed
|
|
128
|
+
|
|
129
|
+
## Choosing the Right Model
|
|
130
|
+
|
|
131
|
+
### Use ACID When:
|
|
132
|
+
|
|
133
|
+
- Financial transactions
|
|
134
|
+
- Critical data integrity
|
|
135
|
+
- Strong consistency required
|
|
136
|
+
- Traditional SQL databases
|
|
137
|
+
|
|
138
|
+
### Use Eventual Consistency When:
|
|
139
|
+
|
|
140
|
+
- High availability critical
|
|
141
|
+
- Can tolerate temporary inconsistency
|
|
142
|
+
- High write throughput
|
|
143
|
+
- Global distribution
|
|
144
|
+
|
|
145
|
+
### Use Partition Tolerance When:
|
|
146
|
+
|
|
147
|
+
- Distributed system
|
|
148
|
+
- Multiple data centers
|
|
149
|
+
- Network failures possible
|
|
150
|
+
- Scalability needed
|
|
151
|
+
|
|
152
|
+
## Best Practices
|
|
153
|
+
|
|
154
|
+
1. **Understand Requirements:** Consistency vs availability needs
|
|
155
|
+
2. **Choose Appropriate Database:** Match CAP trade-offs
|
|
156
|
+
3. **Design for Failure:** Assume partitions will occur
|
|
157
|
+
4. **Handle Conflicts:** Eventual consistency strategies
|
|
158
|
+
5. **Monitor Consistency:** Track replication lag
|
|
159
|
+
6. **Document Decisions:** Why chosen model
|
|
160
|
+
7. **Test Partition Scenarios:** How system behaves
|
|
161
|
+
8. **Balance Trade-offs:** Match business needs
|
|
162
|
+
9. **Consider Hybrid:** Different models for different data
|
|
163
|
+
10. **Review Regularly:** As requirements change
|
|
164
|
+
|
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
# Database Backup and Recovery
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Backup and recovery strategies protect against data loss and enable point-in-time recovery. This guide covers backup types, recovery objectives, and implementation strategies.
|
|
6
|
-
|
|
7
|
-
## Backup Types
|
|
8
|
-
|
|
9
|
-
### Full Backup
|
|
10
|
-
|
|
11
|
-
**Complete Database:**
|
|
12
|
-
- All data and schema
|
|
13
|
-
- Foundation for recovery
|
|
14
|
-
- Longer backup time
|
|
15
|
-
- More storage required
|
|
16
|
-
|
|
17
|
-
**PostgreSQL:**
|
|
18
|
-
```bash
|
|
19
|
-
pg_dump -Fc database_name > backup.dump
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**MySQL:**
|
|
23
|
-
```bash
|
|
24
|
-
mysqldump --single-transaction database_name > backup.sql
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Incremental Backup
|
|
28
|
-
|
|
29
|
-
**Changes Since Last Backup:**
|
|
30
|
-
- Faster backups
|
|
31
|
-
- Less storage
|
|
32
|
-
- Requires full + incrementals
|
|
33
|
-
- More complex recovery
|
|
34
|
-
|
|
35
|
-
### Differential Backup
|
|
36
|
-
|
|
37
|
-
**Changes Since Full Backup:**
|
|
38
|
-
- Moderate backup time
|
|
39
|
-
- Moderate storage
|
|
40
|
-
- Full + latest differential
|
|
41
|
-
- Simpler than incremental
|
|
42
|
-
|
|
43
|
-
### Continuous Archiving
|
|
44
|
-
|
|
45
|
-
**WAL/Transaction Logs:**
|
|
46
|
-
- Real-time log archiving
|
|
47
|
-
- Point-in-time recovery
|
|
48
|
-
- Minimal data loss
|
|
49
|
-
- Higher complexity
|
|
50
|
-
|
|
51
|
-
**PostgreSQL:**
|
|
52
|
-
```conf
|
|
53
|
-
# postgresql.conf
|
|
54
|
-
wal_level = replica
|
|
55
|
-
archive_mode = on
|
|
56
|
-
archive_command = 'cp %p /backup/wal/%f'
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## Recovery Objectives
|
|
60
|
-
|
|
61
|
-
### RTO (Recovery Time Objective)
|
|
62
|
-
|
|
63
|
-
**Maximum Downtime:**
|
|
64
|
-
- Time to restore service
|
|
65
|
-
- Business impact tolerance
|
|
66
|
-
- Drives backup frequency
|
|
67
|
-
- Affects recovery strategy
|
|
68
|
-
|
|
69
|
-
### RPO (Recovery Point Objective)
|
|
70
|
-
|
|
71
|
-
**Maximum Data Loss:**
|
|
72
|
-
- Acceptable data loss window
|
|
73
|
-
- Frequency of backups
|
|
74
|
-
- Drives replication strategy
|
|
75
|
-
- Affects backup type
|
|
76
|
-
|
|
77
|
-
## Backup Strategies
|
|
78
|
-
|
|
79
|
-
### Cold Backup
|
|
80
|
-
|
|
81
|
-
**Database Offline:**
|
|
82
|
-
- Database stopped
|
|
83
|
-
- Consistent snapshot
|
|
84
|
-
- Simple process
|
|
85
|
-
- Requires downtime
|
|
86
|
-
|
|
87
|
-
### Hot Backup
|
|
88
|
-
|
|
89
|
-
**Database Online:**
|
|
90
|
-
- No downtime
|
|
91
|
-
- Consistent state required
|
|
92
|
-
- More complex
|
|
93
|
-
- Production-friendly
|
|
94
|
-
|
|
95
|
-
**PostgreSQL:**
|
|
96
|
-
```bash
|
|
97
|
-
pg_basebackup -D /backup/base -Ft -z -P
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Snapshot Backup
|
|
101
|
-
|
|
102
|
-
**Storage-Level Snapshot:**
|
|
103
|
-
- Instant snapshot
|
|
104
|
-
- Storage vendor feature
|
|
105
|
-
- Fast backup
|
|
106
|
-
- Restore to snapshot point
|
|
107
|
-
|
|
108
|
-
## Recovery Procedures
|
|
109
|
-
|
|
110
|
-
### Full Recovery
|
|
111
|
-
|
|
112
|
-
**Restore from Backup:**
|
|
113
|
-
```bash
|
|
114
|
-
# PostgreSQL
|
|
115
|
-
pg_restore -d database_name backup.dump
|
|
116
|
-
|
|
117
|
-
# MySQL
|
|
118
|
-
mysql database_name < backup.sql
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Point-in-Time Recovery
|
|
122
|
-
|
|
123
|
-
**Recover to Specific Time:**
|
|
124
|
-
```bash
|
|
125
|
-
# PostgreSQL
|
|
126
|
-
# 1. Restore base backup
|
|
127
|
-
pg_restore -d database_name base_backup.dump
|
|
128
|
-
|
|
129
|
-
# 2. Replay WAL logs to target time
|
|
130
|
-
pg_recovery -D /data -t "2026-01-15 10:30:00"
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Partial Recovery
|
|
134
|
-
|
|
135
|
-
**Recover Specific Objects:**
|
|
136
|
-
```bash
|
|
137
|
-
# Restore specific tables
|
|
138
|
-
pg_restore -t users -d database_name backup.dump
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Backup Automation
|
|
142
|
-
|
|
143
|
-
### Scheduled Backups
|
|
144
|
-
|
|
145
|
-
**Cron Jobs:**
|
|
146
|
-
```bash
|
|
147
|
-
# Daily full backup
|
|
148
|
-
0 2 * * * pg_dump -Fc database > /backup/daily/$(date +\%Y\%m\%d).dump
|
|
149
|
-
|
|
150
|
-
# Hourly incremental
|
|
151
|
-
0 * * * * archive_wal_logs.sh
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Retention Policies
|
|
155
|
-
|
|
156
|
-
**Keep Backups:**
|
|
157
|
-
- Daily: 7 days
|
|
158
|
-
- Weekly: 4 weeks
|
|
159
|
-
- Monthly: 12 months
|
|
160
|
-
- Yearly: 7 years
|
|
161
|
-
|
|
162
|
-
### Backup Verification
|
|
163
|
-
|
|
164
|
-
**Test Restores:**
|
|
165
|
-
- Regular restore tests
|
|
166
|
-
- Verify backup integrity
|
|
167
|
-
- Test recovery procedures
|
|
168
|
-
- Document results
|
|
169
|
-
|
|
170
|
-
## Best Practices
|
|
171
|
-
|
|
172
|
-
1. **Automate Backups:** Regular, scheduled
|
|
173
|
-
2. **Test Restores:** Regular DR drills
|
|
174
|
-
3. **Offsite Storage:** Geographic redundancy
|
|
175
|
-
4. **Encrypt Backups:** Protect sensitive data
|
|
176
|
-
5. **Monitor Backup Success:** Alert on failures
|
|
177
|
-
6. **Document Procedures:** Clear recovery steps
|
|
178
|
-
7. **Set Retention:** Balance storage and recovery needs
|
|
179
|
-
8. **Verify Integrity:** Regular checksums
|
|
180
|
-
9. **Multiple Backup Types:** Full + incremental/differential
|
|
181
|
-
10. **Regular Reviews:** Update procedures
|
|
182
|
-
|
|
1
|
+
# Database Backup and Recovery
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Backup and recovery strategies protect against data loss and enable point-in-time recovery. This guide covers backup types, recovery objectives, and implementation strategies.
|
|
6
|
+
|
|
7
|
+
## Backup Types
|
|
8
|
+
|
|
9
|
+
### Full Backup
|
|
10
|
+
|
|
11
|
+
**Complete Database:**
|
|
12
|
+
- All data and schema
|
|
13
|
+
- Foundation for recovery
|
|
14
|
+
- Longer backup time
|
|
15
|
+
- More storage required
|
|
16
|
+
|
|
17
|
+
**PostgreSQL:**
|
|
18
|
+
```bash
|
|
19
|
+
pg_dump -Fc database_name > backup.dump
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**MySQL:**
|
|
23
|
+
```bash
|
|
24
|
+
mysqldump --single-transaction database_name > backup.sql
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Incremental Backup
|
|
28
|
+
|
|
29
|
+
**Changes Since Last Backup:**
|
|
30
|
+
- Faster backups
|
|
31
|
+
- Less storage
|
|
32
|
+
- Requires full + incrementals
|
|
33
|
+
- More complex recovery
|
|
34
|
+
|
|
35
|
+
### Differential Backup
|
|
36
|
+
|
|
37
|
+
**Changes Since Full Backup:**
|
|
38
|
+
- Moderate backup time
|
|
39
|
+
- Moderate storage
|
|
40
|
+
- Full + latest differential
|
|
41
|
+
- Simpler than incremental
|
|
42
|
+
|
|
43
|
+
### Continuous Archiving
|
|
44
|
+
|
|
45
|
+
**WAL/Transaction Logs:**
|
|
46
|
+
- Real-time log archiving
|
|
47
|
+
- Point-in-time recovery
|
|
48
|
+
- Minimal data loss
|
|
49
|
+
- Higher complexity
|
|
50
|
+
|
|
51
|
+
**PostgreSQL:**
|
|
52
|
+
```conf
|
|
53
|
+
# postgresql.conf
|
|
54
|
+
wal_level = replica
|
|
55
|
+
archive_mode = on
|
|
56
|
+
archive_command = 'cp %p /backup/wal/%f'
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Recovery Objectives
|
|
60
|
+
|
|
61
|
+
### RTO (Recovery Time Objective)
|
|
62
|
+
|
|
63
|
+
**Maximum Downtime:**
|
|
64
|
+
- Time to restore service
|
|
65
|
+
- Business impact tolerance
|
|
66
|
+
- Drives backup frequency
|
|
67
|
+
- Affects recovery strategy
|
|
68
|
+
|
|
69
|
+
### RPO (Recovery Point Objective)
|
|
70
|
+
|
|
71
|
+
**Maximum Data Loss:**
|
|
72
|
+
- Acceptable data loss window
|
|
73
|
+
- Frequency of backups
|
|
74
|
+
- Drives replication strategy
|
|
75
|
+
- Affects backup type
|
|
76
|
+
|
|
77
|
+
## Backup Strategies
|
|
78
|
+
|
|
79
|
+
### Cold Backup
|
|
80
|
+
|
|
81
|
+
**Database Offline:**
|
|
82
|
+
- Database stopped
|
|
83
|
+
- Consistent snapshot
|
|
84
|
+
- Simple process
|
|
85
|
+
- Requires downtime
|
|
86
|
+
|
|
87
|
+
### Hot Backup
|
|
88
|
+
|
|
89
|
+
**Database Online:**
|
|
90
|
+
- No downtime
|
|
91
|
+
- Consistent state required
|
|
92
|
+
- More complex
|
|
93
|
+
- Production-friendly
|
|
94
|
+
|
|
95
|
+
**PostgreSQL:**
|
|
96
|
+
```bash
|
|
97
|
+
pg_basebackup -D /backup/base -Ft -z -P
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Snapshot Backup
|
|
101
|
+
|
|
102
|
+
**Storage-Level Snapshot:**
|
|
103
|
+
- Instant snapshot
|
|
104
|
+
- Storage vendor feature
|
|
105
|
+
- Fast backup
|
|
106
|
+
- Restore to snapshot point
|
|
107
|
+
|
|
108
|
+
## Recovery Procedures
|
|
109
|
+
|
|
110
|
+
### Full Recovery
|
|
111
|
+
|
|
112
|
+
**Restore from Backup:**
|
|
113
|
+
```bash
|
|
114
|
+
# PostgreSQL
|
|
115
|
+
pg_restore -d database_name backup.dump
|
|
116
|
+
|
|
117
|
+
# MySQL
|
|
118
|
+
mysql database_name < backup.sql
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Point-in-Time Recovery
|
|
122
|
+
|
|
123
|
+
**Recover to Specific Time:**
|
|
124
|
+
```bash
|
|
125
|
+
# PostgreSQL
|
|
126
|
+
# 1. Restore base backup
|
|
127
|
+
pg_restore -d database_name base_backup.dump
|
|
128
|
+
|
|
129
|
+
# 2. Replay WAL logs to target time
|
|
130
|
+
pg_recovery -D /data -t "2026-01-15 10:30:00"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Partial Recovery
|
|
134
|
+
|
|
135
|
+
**Recover Specific Objects:**
|
|
136
|
+
```bash
|
|
137
|
+
# Restore specific tables
|
|
138
|
+
pg_restore -t users -d database_name backup.dump
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Backup Automation
|
|
142
|
+
|
|
143
|
+
### Scheduled Backups
|
|
144
|
+
|
|
145
|
+
**Cron Jobs:**
|
|
146
|
+
```bash
|
|
147
|
+
# Daily full backup
|
|
148
|
+
0 2 * * * pg_dump -Fc database > /backup/daily/$(date +\%Y\%m\%d).dump
|
|
149
|
+
|
|
150
|
+
# Hourly incremental
|
|
151
|
+
0 * * * * archive_wal_logs.sh
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Retention Policies
|
|
155
|
+
|
|
156
|
+
**Keep Backups:**
|
|
157
|
+
- Daily: 7 days
|
|
158
|
+
- Weekly: 4 weeks
|
|
159
|
+
- Monthly: 12 months
|
|
160
|
+
- Yearly: 7 years
|
|
161
|
+
|
|
162
|
+
### Backup Verification
|
|
163
|
+
|
|
164
|
+
**Test Restores:**
|
|
165
|
+
- Regular restore tests
|
|
166
|
+
- Verify backup integrity
|
|
167
|
+
- Test recovery procedures
|
|
168
|
+
- Document results
|
|
169
|
+
|
|
170
|
+
## Best Practices
|
|
171
|
+
|
|
172
|
+
1. **Automate Backups:** Regular, scheduled
|
|
173
|
+
2. **Test Restores:** Regular DR drills
|
|
174
|
+
3. **Offsite Storage:** Geographic redundancy
|
|
175
|
+
4. **Encrypt Backups:** Protect sensitive data
|
|
176
|
+
5. **Monitor Backup Success:** Alert on failures
|
|
177
|
+
6. **Document Procedures:** Clear recovery steps
|
|
178
|
+
7. **Set Retention:** Balance storage and recovery needs
|
|
179
|
+
8. **Verify Integrity:** Regular checksums
|
|
180
|
+
9. **Multiple Backup Types:** Full + incremental/differential
|
|
181
|
+
10. **Regular Reviews:** Update procedures
|
|
182
|
+
|