@evolith/core-domain 1.0.1 → 1.0.2
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.
- package/dist/domain/services/default-workflow-definition.js +4 -1
- package/dist/domain/services/default-workflow-definition.js.map +1 -1
- package/dist/gates/decision/gate-decision.js.map +1 -1
- package/package.json +1 -2
- package/rulesets/README.es.md +0 -170
- package/rulesets/README.md +0 -170
- package/rulesets/acl/README.es.md +0 -41
- package/rulesets/acl/README.md +0 -41
- package/rulesets/acl/anti-corruption-layer.rules.es.json +0 -99
- package/rulesets/acl/anti-corruption-layer.rules.json +0 -99
- package/rulesets/adr/ADR_COVERAGE.es.md +0 -133
- package/rulesets/adr/ADR_COVERAGE.md +0 -133
- package/rulesets/adr/README.es.md +0 -17
- package/rulesets/adr/README.md +0 -17
- package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +0 -103
- package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +0 -102
- package/rulesets/adr/adr-0010-multi-tenancy.rules.json +0 -129
- package/rulesets/adr/adr-0018-testing-pyramid.rules.json +0 -115
- package/rulesets/adr/adr-0032-protocol-selection.rules.json +0 -134
- package/rulesets/adr/adr-0040-multi-runtime.rules.json +0 -131
- package/rulesets/adr/adr-0050-gitflow-branching.rules.json +0 -176
- package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +0 -29
- package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +0 -29
- package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +0 -29
- package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +0 -29
- package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +0 -28
- package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +0 -29
- package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +0 -29
- package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +0 -28
- package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +0 -29
- package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +0 -29
- package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +0 -28
- package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +0 -29
- package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +0 -28
- package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +0 -29
- package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +0 -28
- package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +0 -29
- package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +0 -28
- package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +0 -29
- package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +0 -29
- package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +0 -29
- package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +0 -28
- package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +0 -29
- package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +0 -29
- package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +0 -29
- package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +0 -27
- package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +0 -27
- package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +0 -28
- package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +0 -29
- package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +0 -28
- package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +0 -29
- package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +0 -29
- package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +0 -29
- package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +0 -28
- package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +0 -28
- package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +0 -29
- package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +0 -29
- package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +0 -29
- package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +0 -28
- package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +0 -29
- package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +0 -28
- package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +0 -27
- package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +0 -29
- package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +0 -29
- package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +0 -28
- package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +0 -29
- package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +0 -29
- package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +0 -27
- package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +0 -29
- package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +0 -27
- package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +0 -29
- package/rulesets/architecture/README.es.md +0 -21
- package/rulesets/architecture/README.md +0 -21
- package/rulesets/architecture/opa/progressive-axis.rego +0 -50
- package/rulesets/cli/README.es.md +0 -17
- package/rulesets/cli/README.md +0 -17
- package/rulesets/cli/core-parity.rules.json +0 -61
- package/rulesets/cli/release-readiness.rules.json +0 -77
- package/rulesets/compliance-baseline/README.es.md +0 -26
- package/rulesets/compliance-baseline/README.md +0 -26
- package/rulesets/compliance-baseline/compliance-baseline.rules.json +0 -81
- package/rulesets/contracts/README.es.md +0 -19
- package/rulesets/contracts/README.md +0 -19
- package/rulesets/contracts/evolith-machine-contracts.json +0 -29
- package/rulesets/contracts/fixtures/gate-evidence.success.json +0 -10
- package/rulesets/contracts/fixtures/output-envelope.success.json +0 -23
- package/rulesets/cross-cutting/README.es.md +0 -14
- package/rulesets/cross-cutting/README.md +0 -14
- package/rulesets/cross-cutting/compliance-baseline.rules.json +0 -81
- package/rulesets/cross-cutting/definition-of-done.rules.json +0 -135
- package/rulesets/cross-cutting/engineering-manifesto.rules.json +0 -145
- package/rulesets/cross-cutting/repository-taxonomy.rules.json +0 -172
- package/rulesets/definition-of-done/README.es.md +0 -26
- package/rulesets/definition-of-done/README.md +0 -26
- package/rulesets/definition-of-done/definition-of-done.rules.json +0 -135
- package/rulesets/engineering-manifesto/README.es.md +0 -26
- package/rulesets/engineering-manifesto/README.md +0 -26
- package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +0 -145
- package/rulesets/evidence/README.es.md +0 -12
- package/rulesets/evidence/README.md +0 -12
- package/rulesets/evidence/evidence-manifest.rules.json +0 -48
- package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +0 -213
- package/rulesets/executive-scorecards/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/README.es.md +0 -13
- package/rulesets/governance/README.md +0 -13
- package/rulesets/governance/abac-mcp-access.rules.es.json +0 -41
- package/rulesets/governance/abac-mcp-access.rules.json +0 -41
- package/rulesets/governance/executive-scorecards.rules.es.json +0 -213
- package/rulesets/governance/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/inheritance.rules.json +0 -115
- package/rulesets/governance/knowledge-intake.rules.json +0 -18
- package/rulesets/governance/open-core-boundary.rules.es.json +0 -148
- package/rulesets/governance/open-core-boundary.rules.json +0 -148
- package/rulesets/governance/satellite-contracts.rules.json +0 -183
- package/rulesets/infrastructure/helm-enforcement.rules.json +0 -21
- package/rulesets/infrastructure/opa/helm-enforcement.rego +0 -25
- package/rulesets/infrastructure/opa/helm-enforcement.test.rego +0 -31
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +0 -115
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +0 -66
- package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +0 -18
- package/rulesets/mcp/README.es.md +0 -12
- package/rulesets/mcp/README.md +0 -12
- package/rulesets/mcp/protocol-compliance.rules.json +0 -57
- package/rulesets/observability/README.es.md +0 -12
- package/rulesets/observability/README.md +0 -12
- package/rulesets/observability/telemetry-evidence.rules.json +0 -48
- package/rulesets/opa/README.es.md +0 -22
- package/rulesets/opa/README.md +0 -22
- package/rulesets/opa/abac-mcp-tool-access.rego +0 -122
- package/rulesets/opa/abac-mcp-tool-access.test.rego +0 -33
- package/rulesets/opa/anti-corruption-layer.rego +0 -39
- package/rulesets/opa/anti-corruption-layer.test.rego +0 -118
- package/rulesets/opa/ci-cd.rego +0 -41
- package/rulesets/opa/ci-cd.test.rego +0 -23
- package/rulesets/opa/cicd-quality-gates.rego +0 -29
- package/rulesets/opa/cicd-quality-gates.test.rego +0 -54
- package/rulesets/opa/cli-core-parity.rego +0 -17
- package/rulesets/opa/cli-core-parity.test.rego +0 -39
- package/rulesets/opa/cli-readiness.rego +0 -32
- package/rulesets/opa/cli-readiness.test.rego +0 -23
- package/rulesets/opa/cli-release-readiness.rego +0 -21
- package/rulesets/opa/cli-release-readiness.test.rego +0 -46
- package/rulesets/opa/compliance-baseline.rego +0 -95
- package/rulesets/opa/compliance-baseline.test.rego +0 -89
- package/rulesets/opa/dod.rego +0 -42
- package/rulesets/opa/dod.test.rego +0 -250
- package/rulesets/opa/engineering-manifesto.rego +0 -78
- package/rulesets/opa/engineering-manifesto.test.rego +0 -133
- package/rulesets/opa/evidence.rego +0 -64
- package/rulesets/opa/evidence.test.rego +0 -23
- package/rulesets/opa/executive-scorecards.rego +0 -41
- package/rulesets/opa/executive-scorecards.test.rego +0 -60
- package/rulesets/opa/gitflow-branching.rego +0 -41
- package/rulesets/opa/gitflow-branching.test.rego +0 -60
- package/rulesets/opa/governance.rego +0 -39
- package/rulesets/opa/governance.test.rego +0 -23
- package/rulesets/opa/hexagonal-architecture.rego +0 -33
- package/rulesets/opa/hexagonal-architecture.test.rego +0 -57
- package/rulesets/opa/infrastructure/helm-enforcement.rego +0 -33
- package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +0 -42
- package/rulesets/opa/knowledge-intake.rego +0 -98
- package/rulesets/opa/knowledge-intake.test.rego +0 -50
- package/rulesets/opa/main.rego +0 -147
- package/rulesets/opa/main_test.rego +0 -149
- package/rulesets/opa/mcp.rego +0 -61
- package/rulesets/opa/mcp.test.rego +0 -27
- package/rulesets/opa/multi-runtime.rego +0 -33
- package/rulesets/opa/multi-runtime.test.rego +0 -53
- package/rulesets/opa/multi-tenancy.rego +0 -33
- package/rulesets/opa/multi-tenancy.test.rego +0 -53
- package/rulesets/opa/open-core-boundary.rego +0 -33
- package/rulesets/opa/open-core-boundary.test.rego +0 -60
- package/rulesets/opa/protocol-selection.rego +0 -29
- package/rulesets/opa/protocol-selection.test.rego +0 -46
- package/rulesets/opa/rbac/gate-role-enforcement.rego +0 -112
- package/rulesets/opa/repository-taxonomy.rego +0 -98
- package/rulesets/opa/repository-taxonomy.test.rego +0 -91
- package/rulesets/opa/satellite-contracts.rego +0 -42
- package/rulesets/opa/satellite-contracts.test.rego +0 -70
- package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +0 -21
- package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +0 -25
- package/rulesets/opa/schemas/ci-cd.input.schema.json +0 -27
- package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +0 -33
- package/rulesets/opa/schemas/cli-core-parity.input.schema.json +0 -30
- package/rulesets/opa/schemas/cli-readiness.input.schema.json +0 -28
- package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +0 -26
- package/rulesets/opa/schemas/compliance-baseline.input.schema.json +0 -25
- package/rulesets/opa/schemas/dod.input.schema.json +0 -38
- package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +0 -24
- package/rulesets/opa/schemas/evidence.input.schema.json +0 -35
- package/rulesets/opa/schemas/executive-scorecards.input.schema.json +0 -36
- package/rulesets/opa/schemas/gitflow-branching.input.schema.json +0 -36
- package/rulesets/opa/schemas/governance.input.schema.json +0 -19
- package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +0 -46
- package/rulesets/opa/schemas/knowledge-intake.input.schema.json +0 -57
- package/rulesets/opa/schemas/mcp.input.schema.json +0 -38
- package/rulesets/opa/schemas/multi-runtime.input.schema.json +0 -27
- package/rulesets/opa/schemas/multi-tenancy.input.schema.json +0 -27
- package/rulesets/opa/schemas/open-core-boundary.input.schema.json +0 -36
- package/rulesets/opa/schemas/protocol-selection.input.schema.json +0 -26
- package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +0 -18
- package/rulesets/opa/schemas/satellite-contracts.input.schema.json +0 -38
- package/rulesets/opa/schemas/taxonomy.input.schema.json +0 -27
- package/rulesets/opa/schemas/testing-pyramid.input.schema.json +0 -42
- package/rulesets/opa/schemas/version-pinning.input.schema.json +0 -39
- package/rulesets/opa/sdlc/coverage.rego +0 -49
- package/rulesets/opa/sdlc/coverage.test.rego +0 -29
- package/rulesets/opa/sdlc/pyramid-distribution.rego +0 -31
- package/rulesets/opa/sdlc/pyramid-distribution.test.rego +0 -33
- package/rulesets/opa/taxonomy.rego +0 -51
- package/rulesets/opa/taxonomy.test.rego +0 -28
- package/rulesets/opa/telemetry-evidence.rego +0 -102
- package/rulesets/opa/testing-pyramid.rego +0 -49
- package/rulesets/opa/testing-pyramid.test.rego +0 -81
- package/rulesets/opa/version-pinning.rego +0 -99
- package/rulesets/opa/version-pinning.test.rego +0 -28
- package/rulesets/phase-gates/README.es.md +0 -28
- package/rulesets/phase-gates/README.md +0 -28
- package/rulesets/phase-gates/phase-gates.rules.json +0 -297
- package/rulesets/quality-thresholds/README.es.md +0 -28
- package/rulesets/quality-thresholds/README.md +0 -28
- package/rulesets/quality-thresholds/quality-thresholds.rules.json +0 -96
- package/rulesets/repository-taxonomy/README.es.md +0 -26
- package/rulesets/repository-taxonomy/README.md +0 -26
- package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +0 -172
- package/rulesets/satellite-contracts/README.es.md +0 -27
- package/rulesets/satellite-contracts/README.md +0 -27
- package/rulesets/satellite-contracts/satellite-contracts.rules.json +0 -183
- package/rulesets/schema/README.es.md +0 -39
- package/rulesets/schema/README.md +0 -39
- package/rulesets/schema/adr.schema.json +0 -138
- package/rulesets/schema/agile-backlog.schema.json +0 -91
- package/rulesets/schema/ballpark-estimation.schema.json +0 -109
- package/rulesets/schema/build-vs-compose.schema.json +0 -98
- package/rulesets/schema/cli-impact-analysis.schema.json +0 -114
- package/rulesets/schema/discovery-canvas.schema.json +0 -92
- package/rulesets/schema/evolith-user-story.schema.json +0 -105
- package/rulesets/schema/evolith-yaml.schema.json +0 -191
- package/rulesets/schema/functional-story.schema.json +0 -111
- package/rulesets/schema/gate-evidence.schema.json +0 -85
- package/rulesets/schema/integration-evidence.schema.json +0 -47
- package/rulesets/schema/knowledge-intake.schema.json +0 -67
- package/rulesets/schema/knowledge-projection.schema.json +0 -24
- package/rulesets/schema/maturity-evidence.schema.json +0 -59
- package/rulesets/schema/observability-validation.schema.json +0 -85
- package/rulesets/schema/on-call-handoff.schema.json +0 -91
- package/rulesets/schema/output-envelope.schema.json +0 -102
- package/rulesets/schema/prd.schema.json +0 -117
- package/rulesets/schema/release-notes.schema.json +0 -138
- package/rulesets/schema/rollback-rehearsal.schema.json +0 -73
- package/rulesets/schema/ruleset-sdlc.schema.json +0 -59
- package/rulesets/schema/ruleset-standard.schema.json +0 -73
- package/rulesets/schema/security-scan-report.schema.json +0 -79
- package/rulesets/schema/source-registry.schema.json +0 -51
- package/rulesets/schema/technical-feasibility.schema.json +0 -66
- package/rulesets/schema/technical-story.schema.json +0 -112
- package/rulesets/schema/test-summary-report.schema.json +0 -158
- package/rulesets/schema/topology-composition.schema.json +0 -43
- package/rulesets/schema/topology-manifest.schema.json +0 -421
- package/rulesets/sdlc/README.es.md +0 -12
- package/rulesets/sdlc/README.md +0 -12
- package/rulesets/sdlc/default-workflow.yaml +0 -73
- package/rulesets/sdlc/dependency-pinning.rules.json +0 -183
- package/rulesets/sdlc/phase-gates.rules.json +0 -297
- package/rulesets/sdlc/quality-thresholds.rules.json +0 -96
- package/rulesets/topologies/README.es.md +0 -42
- package/rulesets/topologies/README.md +0 -42
- package/rulesets/topologies/agentic-ai/README.es.md +0 -142
- package/rulesets/topologies/agentic-ai/README.md +0 -142
- package/rulesets/topologies/agentic-ai/adoption.es.md +0 -37
- package/rulesets/topologies/agentic-ai/adoption.md +0 -37
- package/rulesets/topologies/agentic-ai/agent.config.schema.json +0 -100
- package/rulesets/topologies/agentic-ai/agentic-ai.rego +0 -46
- package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +0 -109
- package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +0 -68
- package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +0 -35
- package/rulesets/topologies/agentic-ai/cli/cli-flows.md +0 -45
- package/rulesets/topologies/agentic-ai/evidence.es.md +0 -25
- package/rulesets/topologies/agentic-ai/evidence.md +0 -25
- package/rulesets/topologies/agentic-ai/evolution.es.md +0 -26
- package/rulesets/topologies/agentic-ai/evolution.md +0 -26
- package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/maturity.es.md +0 -33
- package/rulesets/topologies/agentic-ai/maturity.md +0 -33
- package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +0 -100
- package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/agentic-ai/operations.es.md +0 -32
- package/rulesets/topologies/agentic-ai/operations.md +0 -32
- package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +0 -22
- package/rulesets/topologies/agentic-ai/patterns.es.md +0 -32
- package/rulesets/topologies/agentic-ai/patterns.md +0 -32
- package/rulesets/topologies/agentic-ai/resilience.es.md +0 -26
- package/rulesets/topologies/agentic-ai/resilience.md +0 -26
- package/rulesets/topologies/agentic-ai/runbooks.es.md +0 -48
- package/rulesets/topologies/agentic-ai/runbooks.md +0 -48
- package/rulesets/topologies/agentic-ai/security.es.md +0 -26
- package/rulesets/topologies/agentic-ai/security.md +0 -26
- package/rulesets/topologies/agentic-ai/topology.manifest.json +0 -127
- package/rulesets/topologies/data-mesh/README.es.md +0 -69
- package/rulesets/topologies/data-mesh/README.md +0 -69
- package/rulesets/topologies/data-mesh/adoption.es.md +0 -95
- package/rulesets/topologies/data-mesh/adoption.md +0 -95
- package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/data-mesh/cli/cli-flows.md +0 -53
- package/rulesets/topologies/data-mesh/data-mesh.rego +0 -11
- package/rulesets/topologies/data-mesh/data-mesh.rules.json +0 -100
- package/rulesets/topologies/data-mesh/data-mesh.test.rego +0 -107
- package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
- package/rulesets/topologies/data-mesh/evidence.es.md +0 -111
- package/rulesets/topologies/data-mesh/evidence.md +0 -111
- package/rulesets/topologies/data-mesh/evolution.es.md +0 -67
- package/rulesets/topologies/data-mesh/evolution.md +0 -67
- package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/maturity.es.md +0 -36
- package/rulesets/topologies/data-mesh/maturity.md +0 -36
- package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/data-mesh/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/data-mesh/operations.es.md +0 -63
- package/rulesets/topologies/data-mesh/operations.md +0 -63
- package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/data-mesh/patterns.es.md +0 -67
- package/rulesets/topologies/data-mesh/patterns.md +0 -67
- package/rulesets/topologies/data-mesh/resilience.es.md +0 -64
- package/rulesets/topologies/data-mesh/resilience.md +0 -64
- package/rulesets/topologies/data-mesh/runbooks.es.md +0 -147
- package/rulesets/topologies/data-mesh/runbooks.md +0 -147
- package/rulesets/topologies/data-mesh/security.es.md +0 -66
- package/rulesets/topologies/data-mesh/security.md +0 -66
- package/rulesets/topologies/data-mesh/topology.config.schema.json +0 -30
- package/rulesets/topologies/data-mesh/topology.manifest.json +0 -107
- package/rulesets/topologies/edge-computing/README.es.md +0 -81
- package/rulesets/topologies/edge-computing/README.md +0 -81
- package/rulesets/topologies/edge-computing/adoption.es.md +0 -268
- package/rulesets/topologies/edge-computing/adoption.md +0 -268
- package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/edge-computing/cli/cli-flows.md +0 -53
- package/rulesets/topologies/edge-computing/edge-computing.rego +0 -41
- package/rulesets/topologies/edge-computing/edge-computing.rules.json +0 -50
- package/rulesets/topologies/edge-computing/edge-computing.test.rego +0 -33
- package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
- package/rulesets/topologies/edge-computing/evidence.es.md +0 -263
- package/rulesets/topologies/edge-computing/evidence.md +0 -263
- package/rulesets/topologies/edge-computing/evolution.es.md +0 -257
- package/rulesets/topologies/edge-computing/evolution.md +0 -257
- package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/maturity.es.md +0 -36
- package/rulesets/topologies/edge-computing/maturity.md +0 -36
- package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/edge-computing/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/edge-computing/operations.es.md +0 -148
- package/rulesets/topologies/edge-computing/operations.md +0 -148
- package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +0 -12
- package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +0 -13
- package/rulesets/topologies/edge-computing/patterns.es.md +0 -291
- package/rulesets/topologies/edge-computing/patterns.md +0 -290
- package/rulesets/topologies/edge-computing/resilience.es.md +0 -232
- package/rulesets/topologies/edge-computing/resilience.md +0 -229
- package/rulesets/topologies/edge-computing/runbooks.es.md +0 -405
- package/rulesets/topologies/edge-computing/runbooks.md +0 -405
- package/rulesets/topologies/edge-computing/security.es.md +0 -218
- package/rulesets/topologies/edge-computing/security.md +0 -218
- package/rulesets/topologies/edge-computing/topology.config.schema.json +0 -13
- package/rulesets/topologies/edge-computing/topology.manifest.json +0 -113
- package/rulesets/topologies/event-driven/README.es.md +0 -71
- package/rulesets/topologies/event-driven/README.md +0 -71
- package/rulesets/topologies/event-driven/adoption.es.md +0 -67
- package/rulesets/topologies/event-driven/adoption.md +0 -67
- package/rulesets/topologies/event-driven/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/event-driven/cli/cli-flows.md +0 -53
- package/rulesets/topologies/event-driven/event-driven.rego +0 -11
- package/rulesets/topologies/event-driven/event-driven.rules.json +0 -100
- package/rulesets/topologies/event-driven/event-driven.test.rego +0 -107
- package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
- package/rulesets/topologies/event-driven/evidence.es.md +0 -69
- package/rulesets/topologies/event-driven/evidence.md +0 -69
- package/rulesets/topologies/event-driven/evolution.es.md +0 -59
- package/rulesets/topologies/event-driven/evolution.md +0 -59
- package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/maturity.es.md +0 -36
- package/rulesets/topologies/event-driven/maturity.md +0 -36
- package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/event-driven/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/event-driven/operations.es.md +0 -67
- package/rulesets/topologies/event-driven/operations.md +0 -67
- package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/event-driven/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/event-driven/patterns.es.md +0 -68
- package/rulesets/topologies/event-driven/patterns.md +0 -68
- package/rulesets/topologies/event-driven/resilience.es.md +0 -65
- package/rulesets/topologies/event-driven/resilience.md +0 -65
- package/rulesets/topologies/event-driven/runbooks.es.md +0 -79
- package/rulesets/topologies/event-driven/runbooks.md +0 -79
- package/rulesets/topologies/event-driven/security.es.md +0 -59
- package/rulesets/topologies/event-driven/security.md +0 -59
- package/rulesets/topologies/event-driven/topology.config.schema.json +0 -30
- package/rulesets/topologies/event-driven/topology.manifest.json +0 -109
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +0 -111
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +0 -111
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +0 -106
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +0 -106
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +0 -148
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +0 -148
- package/rulesets/topologies/serverless/README.es.md +0 -74
- package/rulesets/topologies/serverless/README.md +0 -74
- package/rulesets/topologies/serverless/adoption.es.md +0 -50
- package/rulesets/topologies/serverless/adoption.md +0 -50
- package/rulesets/topologies/serverless/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/serverless/cli/cli-flows.md +0 -53
- package/rulesets/topologies/serverless/evidence.es.md +0 -66
- package/rulesets/topologies/serverless/evidence.md +0 -66
- package/rulesets/topologies/serverless/evolution.es.md +0 -36
- package/rulesets/topologies/serverless/evolution.md +0 -36
- package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/maturity.es.md +0 -36
- package/rulesets/topologies/serverless/maturity.md +0 -36
- package/rulesets/topologies/serverless/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/serverless/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/serverless/operations.es.md +0 -36
- package/rulesets/topologies/serverless/operations.md +0 -36
- package/rulesets/topologies/serverless/parity-fixtures/compliant.json +0 -13
- package/rulesets/topologies/serverless/parity-fixtures/violation.json +0 -15
- package/rulesets/topologies/serverless/patterns.es.md +0 -36
- package/rulesets/topologies/serverless/patterns.md +0 -36
- package/rulesets/topologies/serverless/resilience.es.md +0 -36
- package/rulesets/topologies/serverless/resilience.md +0 -36
- package/rulesets/topologies/serverless/runbooks.es.md +0 -68
- package/rulesets/topologies/serverless/runbooks.md +0 -68
- package/rulesets/topologies/serverless/security.es.md +0 -36
- package/rulesets/topologies/serverless/security.md +0 -36
- package/rulesets/topologies/serverless/serverless.rego +0 -32
- package/rulesets/topologies/serverless/serverless.rules.json +0 -33
- package/rulesets/topologies/serverless/serverless.test.rego +0 -28
- package/rulesets/topologies/serverless/serverless.wasm +0 -0
- package/rulesets/topologies/serverless/topology.config.schema.json +0 -28
- package/rulesets/topologies/serverless/topology.manifest.json +0 -114
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
# Guía de Resiliencia de Computación en el Borde
|
|
2
|
-
|
|
3
|
-
> **Navegación Bilingüe:** [English](./resilience.md) | [Español](./resilience.es.md)
|
|
4
|
-
|
|
5
|
-
**Propietario:** Ingeniería de Plataforma
|
|
6
|
-
**Topología:** Computación en el Borde
|
|
7
|
-
|
|
8
|
-
## Persistencia Primero sin Conexión
|
|
9
|
-
|
|
10
|
-
Los nodos del borde deben servir solicitudes incluso cuando están desconectados del origen. La arquitectura primero sin conexión garantiza una operación continua.
|
|
11
|
-
|
|
12
|
-
### Arquitectura de Almacenamiento
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
┌─────────────────────────────────────────┐
|
|
16
|
-
│ Almacenamiento del Nodo del Borde │
|
|
17
|
-
│ ┌─────────────────────────────────┐ │
|
|
18
|
-
│ │ Almacén Lectura-Escritura │ │
|
|
19
|
-
│ │ (SQLite) │ │
|
|
20
|
-
│ │ - Workloads activos │ │
|
|
21
|
-
│ │ - Estado local │ │
|
|
22
|
-
│ │ - Escrituras pendientes │ │
|
|
23
|
-
│ └─────────────────────────────────┘ │
|
|
24
|
-
│ ┌─────────────────────────────────┐ │
|
|
25
|
-
│ │ Caché Solo-Lectura (KV Store) │ │
|
|
26
|
-
│ │ - Activos estáticos │ │
|
|
27
|
-
│ │ - Datos de acceso frecuente │ │
|
|
28
|
-
│ │ - Contenido pre-obtenido │ │
|
|
29
|
-
│ └─────────────────────────────────┘ │
|
|
30
|
-
│ ┌─────────────────────────────────┐ │
|
|
31
|
-
│ │ Registro WAL │ │
|
|
32
|
-
│ │ - Operaciones de sincronización│ │
|
|
33
|
-
│ │ pendientes │ │
|
|
34
|
-
│ │ - Cola de resolución de │ │
|
|
35
|
-
│ │ conflictos │ │
|
|
36
|
-
│ └─────────────────────────────────┘ │
|
|
37
|
-
└─────────────────────────────────────────┘
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Detección sin Conexión
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
# Monitorear conectividad con el origen
|
|
44
|
-
edge-cli resilience monitor \
|
|
45
|
-
--check-interval 5s \
|
|
46
|
-
--failure-threshold 3 \
|
|
47
|
-
--recovery-threshold 2 \
|
|
48
|
-
--notify on-state-change
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Resolución de Conflictos (Ref: EC-R03)
|
|
52
|
-
|
|
53
|
-
Cuando múltiples nodos del borde o el origen modifican los mismos datos, los conflictos deben resolverse de forma determinística.
|
|
54
|
-
|
|
55
|
-
### Estrategias de Resolución
|
|
56
|
-
|
|
57
|
-
| Estrategia | Caso de Uso | Compromiso |
|
|
58
|
-
|------------|-------------|------------|
|
|
59
|
-
| Última escritura gana (LWW) | Estado no crítico | Simple, puede perder actualizaciones |
|
|
60
|
-
| Vectores de versión | Edición colaborativa | Completo, historial completo |
|
|
61
|
-
| CRDTs | Operaciones de contador/conjunto | Convergente, consumo de memoria |
|
|
62
|
-
| Resolución personalizada | Lógica específica del negocio | Flexible, debe implementarse |
|
|
63
|
-
|
|
64
|
-
### Motor de Resolución de Conflictos
|
|
65
|
-
|
|
66
|
-
```yaml
|
|
67
|
-
conflict_resolution:
|
|
68
|
-
default_strategy: "version-vector"
|
|
69
|
-
rules:
|
|
70
|
-
- resource: "user-profile"
|
|
71
|
-
strategy: "merge-fields"
|
|
72
|
-
priority_fields:
|
|
73
|
-
- name: "email"
|
|
74
|
-
strategy: "origin-wins"
|
|
75
|
-
- name: "preferences"
|
|
76
|
-
strategy: "deep-merge"
|
|
77
|
-
- resource: "shopping-cart"
|
|
78
|
-
strategy: "crdt-set"
|
|
79
|
-
merge_on_reconnect: true
|
|
80
|
-
- resource: "audit-log"
|
|
81
|
-
strategy: "append-only"
|
|
82
|
-
conflict_action: "reject-duplicate"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Flujo de Resolución
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
# Detectar y resolver conflictos
|
|
89
|
-
edge-cli sync conflicts resolve \
|
|
90
|
-
--node edge-node-01 \
|
|
91
|
-
--strategy auto \
|
|
92
|
-
--dry-run
|
|
93
|
-
|
|
94
|
-
# Salida:
|
|
95
|
-
# CONFLICTS_FOUND: 3
|
|
96
|
-
# RESOLVED: 2
|
|
97
|
-
# REQUIRES_MANUAL: 1
|
|
98
|
-
# DETAILS:
|
|
99
|
-
# - user:123 email → origin-wins (auto)
|
|
100
|
-
# - cart:456 items → crdt-merge (auto)
|
|
101
|
-
# - config:789 timeout → manual-review
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Conmutación por Error al Origen
|
|
105
|
-
|
|
106
|
-
Cuando un nodo del borde no puede servir una solicitud localmente, conmuta al origen con rendimiento degradado.
|
|
107
|
-
|
|
108
|
-
### Jerarquía de Conmutación
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
Solicitud → Nodo del Borde
|
|
112
|
-
├── 1. Acerto en Caché Local → Servir inmediatamente (< 5ms)
|
|
113
|
-
├── 2. Acerto en Par del Borde → Obtener del par (< 20ms)
|
|
114
|
-
├── 3. Conmutación al Origen → Obtener del origen (< 200ms)
|
|
115
|
-
└── 4. Contenido Estático → Servir contenido obsoleto (sin conexión)
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Configuración de Conmutación
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
fallback:
|
|
122
|
-
levels:
|
|
123
|
-
- name: "local-cache"
|
|
124
|
-
timeout: 0ms
|
|
125
|
-
on_miss: "edge-peer"
|
|
126
|
-
- name: "edge-peer"
|
|
127
|
-
timeout: 50ms
|
|
128
|
-
on_miss: "origin"
|
|
129
|
-
- name: "origin"
|
|
130
|
-
timeout: 150ms
|
|
131
|
-
on_miss: "stale-content"
|
|
132
|
-
- name: "stale-content"
|
|
133
|
-
max_staleness: 24h
|
|
134
|
-
on_miss: "error"
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Obsoleto-Mientras-Se-Revalida
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
# Configurar política de obsoleto-mientras-se-revalida
|
|
141
|
-
edge-cli cache policy set \
|
|
142
|
-
--resource "/api/products/*" \
|
|
143
|
-
--stale-while-revalidate 60s \
|
|
144
|
-
--stale-if-error 300s
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Lecturas/Escrituras Primero Local
|
|
148
|
-
|
|
149
|
-
Todas las operaciones se realizan localmente primero y luego se sincronizan con el origen.
|
|
150
|
-
|
|
151
|
-
### Flujo de Escritura
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
Escritura del Cliente → WAL Local → Reconocer al Cliente
|
|
155
|
-
↓
|
|
156
|
-
Sincronización en Segundo Plano
|
|
157
|
-
↓
|
|
158
|
-
Actualización del Origen
|
|
159
|
-
↓
|
|
160
|
-
Confirmar Sincronización
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Flujo de Lectura
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
Lectura del Cliente → Almacén Local → Devolver al Cliente
|
|
167
|
-
↓ (async)
|
|
168
|
-
Verificación de Sincronización → Actualizar si es más reciente
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Implementación
|
|
172
|
-
|
|
173
|
-
```javascript
|
|
174
|
-
// Operación de escritura primero local
|
|
175
|
-
async function localFirstWrite(key, value) {
|
|
176
|
-
// 1. Escribir en WAL local
|
|
177
|
-
const walEntry = await localDB.writeToWAL(key, value);
|
|
178
|
-
|
|
179
|
-
// 2. Reconocer al cliente inmediatamente
|
|
180
|
-
acknowledgeToClient(walEntry.id);
|
|
181
|
-
|
|
182
|
-
// 3. Encolar para sincronización en segundo plano
|
|
183
|
-
syncQueue.enqueue({
|
|
184
|
-
type: 'write',
|
|
185
|
-
key,
|
|
186
|
-
value,
|
|
187
|
-
timestamp: Date.now(),
|
|
188
|
-
walEntryId: walEntry.id
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
## Sincronización en Segundo Plano
|
|
194
|
-
|
|
195
|
-
La sincronización se ejecuta continuamente en segundo plano para reconciliar los cambios locales con el origen.
|
|
196
|
-
|
|
197
|
-
### Estrategias de Sincronización
|
|
198
|
-
|
|
199
|
-
| Estrategia | Cuándo Usar | Ancho de Banda | Impacto en Latencia |
|
|
200
|
-
|------------|-------------|----------------|---------------------|
|
|
201
|
-
| Oportunista | Períodos de baja conectividad | Bajo | Ninguno |
|
|
202
|
-
| Programada | Patrones predecibles | Medio | Bajo |
|
|
203
|
-
| Continua | Necesidades de alta consistencia | Alto | Ninguno |
|
|
204
|
-
| Bajo demanda | Activaciones manuales | Variable | Ninguno |
|
|
205
|
-
|
|
206
|
-
### Gestión de Cola de Sincronización
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
# Monitorear cola de sincronización
|
|
210
|
-
edge-cli sync queue status --node edge-node-01
|
|
211
|
-
|
|
212
|
-
# Salida:
|
|
213
|
-
# PENDING: 45
|
|
214
|
-
# IN_PROGRESS: 3
|
|
215
|
-
# COMPLETED: 12,847
|
|
216
|
-
# FAILED: 12
|
|
217
|
-
# OLDEST_PENDING: 2026-06-23T10:15:00Z
|
|
218
|
-
# ESTIMATED_COMPLETION: 2026-06-23T10:25:00Z
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Prevención de Conflictos
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
# Habilitar bloqueo optimista para escrituras concurrentes
|
|
225
|
-
edge-cli sync config set \
|
|
226
|
-
--node edge-node-01 \
|
|
227
|
-
--optimistic-locking true \
|
|
228
|
-
--retry-on-conflict 3
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
[Volver al Perfil de Computación en el Borde](./README.es.md)
|
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
# Edge Computing — Resilience Guide
|
|
2
|
-
|
|
3
|
-
> **Bilingual Navigation:** [English](./resilience.md) | [Español](./resilience.es.md)
|
|
4
|
-
|
|
5
|
-
**Owner:** Platform Engineering
|
|
6
|
-
**Topology:** Edge Computing
|
|
7
|
-
|
|
8
|
-
## Offline-First Persistence
|
|
9
|
-
|
|
10
|
-
Edge nodes must serve requests even when disconnected from the origin. The offline-first architecture ensures continuous operation.
|
|
11
|
-
|
|
12
|
-
### Storage Architecture
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
┌─────────────────────────────────────────┐
|
|
16
|
-
│ Edge Node Storage │
|
|
17
|
-
│ ┌─────────────────────────────────┐ │
|
|
18
|
-
│ │ Read-Write Store (SQLite) │ │
|
|
19
|
-
│ │ - Active workloads │ │
|
|
20
|
-
│ │ - Local state │ │
|
|
21
|
-
│ │ - Pending writes │ │
|
|
22
|
-
│ └─────────────────────────────────┘ │
|
|
23
|
-
│ ┌─────────────────────────────────┐ │
|
|
24
|
-
│ │ Read-Only Cache (KV Store) │ │
|
|
25
|
-
│ │ - Static assets │ │
|
|
26
|
-
│ │ - Frequently accessed data │ │
|
|
27
|
-
│ │ - Pre-fetched content │ │
|
|
28
|
-
│ └─────────────────────────────────┘ │
|
|
29
|
-
│ ┌─────────────────────────────────┐ │
|
|
30
|
-
│ │ Write-Ahead Log (WAL) │ │
|
|
31
|
-
│ │ - Pending sync operations │ │
|
|
32
|
-
│ │ - Conflict resolution queue │ │
|
|
33
|
-
│ └─────────────────────────────────┘ │
|
|
34
|
-
└─────────────────────────────────────────┘
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Offline Detection
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Monitor origin connectivity
|
|
41
|
-
edge-cli resilience monitor \
|
|
42
|
-
--check-interval 5s \
|
|
43
|
-
--failure-threshold 3 \
|
|
44
|
-
--recovery-threshold 2 \
|
|
45
|
-
--notify on-state-change
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Conflict Resolution (Ref: EC-R03)
|
|
49
|
-
|
|
50
|
-
When multiple edge nodes or the origin modify the same data, conflicts must be resolved deterministically.
|
|
51
|
-
|
|
52
|
-
### Resolution Strategies
|
|
53
|
-
|
|
54
|
-
| Strategy | Use Case | Trade-off |
|
|
55
|
-
|----------|----------|-----------|
|
|
56
|
-
| Last-write-wins (LWW) | Non-critical state | Simple, may lose updates |
|
|
57
|
-
| Version vectors | Collaborative editing | Complex, full history |
|
|
58
|
-
| CRDTs | Counter/set operations | Convergent, memory overhead |
|
|
59
|
-
| Custom resolver | Business-specific logic | Flexible, must implement |
|
|
60
|
-
|
|
61
|
-
### Conflict Resolution Engine
|
|
62
|
-
|
|
63
|
-
```yaml
|
|
64
|
-
conflict_resolution:
|
|
65
|
-
default_strategy: "version-vector"
|
|
66
|
-
rules:
|
|
67
|
-
- resource: "user-profile"
|
|
68
|
-
strategy: "merge-fields"
|
|
69
|
-
priority_fields:
|
|
70
|
-
- name: "email"
|
|
71
|
-
strategy: "origin-wins"
|
|
72
|
-
- name: "preferences"
|
|
73
|
-
strategy: "deep-merge"
|
|
74
|
-
- resource: "shopping-cart"
|
|
75
|
-
strategy: "crdt-set"
|
|
76
|
-
merge_on_reconnect: true
|
|
77
|
-
- resource: "audit-log"
|
|
78
|
-
strategy: "append-only"
|
|
79
|
-
conflict_action: "reject-duplicate"
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Resolution Flow
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# Detect and resolve conflicts
|
|
86
|
-
edge-cli sync conflicts resolve \
|
|
87
|
-
--node edge-node-01 \
|
|
88
|
-
--strategy auto \
|
|
89
|
-
--dry-run
|
|
90
|
-
|
|
91
|
-
# Output:
|
|
92
|
-
# CONFLICTS_FOUND: 3
|
|
93
|
-
# RESOLVED: 2
|
|
94
|
-
# REQUIRES_MANUAL: 1
|
|
95
|
-
# DETAILS:
|
|
96
|
-
# - user:123 email → origin-wins (auto)
|
|
97
|
-
# - cart:456 items → crdt-merge (auto)
|
|
98
|
-
# - config:789 timeout → manual-review
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Fallback to Origin
|
|
102
|
-
|
|
103
|
-
When an edge node cannot serve a request locally, it falls back to the origin with degraded performance.
|
|
104
|
-
|
|
105
|
-
### Fallback Hierarchy
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
Request → Edge Node
|
|
109
|
-
├── 1. Local Cache Hit → Serve immediately (< 5ms)
|
|
110
|
-
├── 2. Edge Peer Hit → Fetch from peer (< 20ms)
|
|
111
|
-
├── 3. Origin Fallback → Fetch from origin (< 200ms)
|
|
112
|
-
└── 4. Static Fallback → Serve stale content (offline)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Fallback Configuration
|
|
116
|
-
|
|
117
|
-
```yaml
|
|
118
|
-
fallback:
|
|
119
|
-
levels:
|
|
120
|
-
- name: "local-cache"
|
|
121
|
-
timeout: 0ms
|
|
122
|
-
on_miss: "edge-peer"
|
|
123
|
-
- name: "edge-peer"
|
|
124
|
-
timeout: 50ms
|
|
125
|
-
on_miss: "origin"
|
|
126
|
-
- name: "origin"
|
|
127
|
-
timeout: 150ms
|
|
128
|
-
on_miss: "stale-content"
|
|
129
|
-
- name: "stale-content"
|
|
130
|
-
max_staleness: 24h
|
|
131
|
-
on_miss: "error"
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Stale-While-Revalidate
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# Configure stale-while-revalidate policy
|
|
138
|
-
edge-cli cache policy set \
|
|
139
|
-
--resource "/api/products/*" \
|
|
140
|
-
--stale-while-revalidate 60s \
|
|
141
|
-
--stale-if-error 300s
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## Local-First Reads/Writes
|
|
145
|
-
|
|
146
|
-
All operations are performed locally first, then synchronized to the origin.
|
|
147
|
-
|
|
148
|
-
### Write Flow
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
Client Write → Local WAL → Acknowledge to Client
|
|
152
|
-
↓
|
|
153
|
-
Background Sync
|
|
154
|
-
↓
|
|
155
|
-
Origin Update
|
|
156
|
-
↓
|
|
157
|
-
Confirm Sync
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### Read Flow
|
|
161
|
-
|
|
162
|
-
```
|
|
163
|
-
Client Read → Local Store → Return to Client
|
|
164
|
-
↓ (async)
|
|
165
|
-
Sync Check → Update if newer
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Implementation
|
|
169
|
-
|
|
170
|
-
```javascript
|
|
171
|
-
// Local-first write operation
|
|
172
|
-
async function localFirstWrite(key, value) {
|
|
173
|
-
// 1. Write to local WAL
|
|
174
|
-
const walEntry = await localDB.writeToWAL(key, value);
|
|
175
|
-
|
|
176
|
-
// 2. Acknowledge to client immediately
|
|
177
|
-
acknowledgeToClient(walEntry.id);
|
|
178
|
-
|
|
179
|
-
// 3. Queue for background sync
|
|
180
|
-
syncQueue.enqueue({
|
|
181
|
-
type: 'write',
|
|
182
|
-
key,
|
|
183
|
-
value,
|
|
184
|
-
timestamp: Date.now(),
|
|
185
|
-
walEntryId: walEntry.id
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## Background Synchronization
|
|
191
|
-
|
|
192
|
-
Synchronization runs continuously in the background to reconcile local changes with the origin.
|
|
193
|
-
|
|
194
|
-
### Sync Strategies
|
|
195
|
-
|
|
196
|
-
| Strategy | When to Use | Bandwidth | Latency Impact |
|
|
197
|
-
|----------|-------------|-----------|----------------|
|
|
198
|
-
| Opportunistic | Low connectivity periods | Low | None |
|
|
199
|
-
| Scheduled | Predictable patterns | Medium | Low |
|
|
200
|
-
| Continuous | High-consistency needs | High | None |
|
|
201
|
-
| On-demand | Manual triggers | Variable | None |
|
|
202
|
-
|
|
203
|
-
### Sync Queue Management
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
# Monitor sync queue
|
|
207
|
-
edge-cli sync queue status --node edge-node-01
|
|
208
|
-
|
|
209
|
-
# Output:
|
|
210
|
-
# PENDING: 45
|
|
211
|
-
# IN_PROGRESS: 3
|
|
212
|
-
# COMPLETED: 12,847
|
|
213
|
-
# FAILED: 12
|
|
214
|
-
# OLDEST_PENDING: 2026-06-23T10:15:00Z
|
|
215
|
-
# ESTIMATED_COMPLETION: 2026-06-23T10:25:00Z
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Conflict Prevention
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
# Enable optimistic locking for concurrent writes
|
|
222
|
-
edge-cli sync config set \
|
|
223
|
-
--node edge-node-01 \
|
|
224
|
-
--optimistic-locking true \
|
|
225
|
-
--retry-on-conflict 3
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
[Back to Edge Computing Profile](./README.md)
|