create-feltdb 0.8.4 → 0.8.6

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.
Files changed (152) hide show
  1. package/dist/package-versions.js +1 -1
  2. package/dist/server-source/Cargo.lock +165 -0
  3. package/dist/server-source/Cargo.toml +9 -0
  4. package/dist/server-source/crates/feltdb/Cargo.toml +3 -0
  5. package/dist/server-source/crates/feltdb/benches/gate13_baseline.rs +44 -44
  6. package/dist/server-source/crates/feltdb/benches/gate13_phase_7_1_release_economics.rs +12 -24
  7. package/dist/server-source/crates/feltdb/benches/gate_13_redux.rs +7 -13
  8. package/dist/server-source/crates/feltdb/benches/gate_13_regression_runner.rs +13 -10
  9. package/dist/server-source/crates/feltdb/benches/gate_14a_concurrent_writer_scaling.rs +12 -9
  10. package/dist/server-source/crates/feltdb/benches/gate_14a_production_admission_revalidation.rs +78 -25
  11. package/dist/server-source/crates/feltdb/benches/gate_14a_rc2_admission_contract.rs +16 -13
  12. package/dist/server-source/crates/feltdb/benches/gate_14a_rc_root_cause.rs +13 -5
  13. package/dist/server-source/crates/feltdb/benches/gate_14a_sync1_queued_prototype.rs +41 -22
  14. package/dist/server-source/crates/feltdb/benches/gate_14a_sync_economics.rs +33 -15
  15. package/dist/server-source/crates/feltdb/benches/gate_14b_causal_backlog_scaling.rs +100 -33
  16. package/dist/server-source/crates/feltdb/benches/gate_14c_replication_contract_test.rs +56 -20
  17. package/dist/server-source/crates/feltdb/benches/gate_14c_replication_scaling.rs +116 -41
  18. package/dist/server-source/crates/feltdb/benches/gate_14d_combined_dimension_scaling.rs +186 -55
  19. package/dist/server-source/crates/feltdb/benches/phase_7_1_2_optimization_benchmark.rs +64 -26
  20. package/dist/server-source/crates/feltdb/benches/phase_7_1_3_crossover_analysis.rs +46 -15
  21. package/dist/server-source/crates/feltdb/src/admission.rs +8 -15
  22. package/dist/server-source/crates/feltdb/src/admission_contract_tests.rs +43 -13
  23. package/dist/server-source/crates/feltdb/src/adversarial_transport.rs +15 -42
  24. package/dist/server-source/crates/feltdb/src/analytics.rs +65 -19
  25. package/dist/server-source/crates/feltdb/src/application.rs +113 -30
  26. package/dist/server-source/crates/feltdb/src/authorization_security_tests.rs +475 -140
  27. package/dist/server-source/crates/feltdb/src/cardinality_diagnostics.rs +17 -15
  28. package/dist/server-source/crates/feltdb/src/cardinality_endpoint.rs +0 -1
  29. package/dist/server-source/crates/feltdb/src/causal_backlog_bound.rs +59 -15
  30. package/dist/server-source/crates/feltdb/src/causal_dependency_barrier.rs +266 -114
  31. package/dist/server-source/crates/feltdb/src/causal_dependency_barrier_phase_7_1.rs +25 -7
  32. package/dist/server-source/crates/feltdb/src/concurrency_fuzzing.rs +10 -15
  33. package/dist/server-source/crates/feltdb/src/consistency_contract.rs +3 -11
  34. package/dist/server-source/crates/feltdb/src/crash_atomic_boundary.rs +14 -5
  35. package/dist/server-source/crates/feltdb/src/crash_injection.rs +21 -25
  36. package/dist/server-source/crates/feltdb/src/crash_recovery_tests.rs +14 -11
  37. package/dist/server-source/crates/feltdb/src/dedup_bound_investigation.rs +103 -22
  38. package/dist/server-source/crates/feltdb/src/distributed_indexing.rs +18 -15
  39. package/dist/server-source/crates/feltdb/src/durability_guarantees.rs +12 -8
  40. package/dist/server-source/crates/feltdb/src/durable_dedup_set.rs +1 -5
  41. package/dist/server-source/crates/feltdb/src/durable_operation_identity.rs +87 -23
  42. package/dist/server-source/crates/feltdb/src/durable_operation_log.rs +3 -7
  43. package/dist/server-source/crates/feltdb/src/durable_sync.rs +10 -9
  44. package/dist/server-source/crates/feltdb/src/in_process_transport.rs +1 -6
  45. package/dist/server-source/crates/feltdb/src/indexing.rs +35 -38
  46. package/dist/server-source/crates/feltdb/src/lib.rs +1648 -46
  47. package/dist/server-source/crates/feltdb/src/managed_cas_tests.rs +4 -1
  48. package/dist/server-source/crates/feltdb/src/metrics.rs +0 -1
  49. package/dist/server-source/crates/feltdb/src/multi_node_convergence.rs +1 -2
  50. package/dist/server-source/crates/feltdb/src/multi_operation_transaction.rs +107 -30
  51. package/dist/server-source/crates/feltdb/src/observability.rs +19 -6
  52. package/dist/server-source/crates/feltdb/src/operation.rs +39 -0
  53. package/dist/server-source/crates/feltdb/src/operation_algebra.rs +12 -11
  54. package/dist/server-source/crates/feltdb/src/operation_log.rs +9 -4
  55. package/dist/server-source/crates/feltdb/src/p1_application_atomicity.rs +65 -18
  56. package/dist/server-source/crates/feltdb/src/p1_atomicity_acceptance.rs +193 -57
  57. package/dist/server-source/crates/feltdb/src/partition_reconciliation.rs +37 -27
  58. package/dist/server-source/crates/feltdb/src/permutation_scheduler.rs +38 -10
  59. package/dist/server-source/crates/feltdb/src/persistence_reality.rs +20 -14
  60. package/dist/server-source/crates/feltdb/src/phase1b_acceptance.rs +394 -229
  61. package/dist/server-source/crates/feltdb/src/phase1c1_acceptance.rs +8 -6
  62. package/dist/server-source/crates/feltdb/src/phase1c2_acceptance.rs +11 -13
  63. package/dist/server-source/crates/feltdb/src/phase1c3_acceptance.rs +79 -70
  64. package/dist/server-source/crates/feltdb/src/phase1c_atomicity_proof.rs +3 -3
  65. package/dist/server-source/crates/feltdb/src/phase5_integration.rs +33 -11
  66. package/dist/server-source/crates/feltdb/src/phase5_scenarios.rs +6 -6
  67. package/dist/server-source/crates/feltdb/src/phase6_adversarial_scenarios.rs +14 -56
  68. package/dist/server-source/crates/feltdb/src/phase6_convergence_validator.rs +29 -27
  69. package/dist/server-source/crates/feltdb/src/phase6_persistence.rs +35 -17
  70. package/dist/server-source/crates/feltdb/src/phase_1c_real_tcp.rs +8 -2
  71. package/dist/server-source/crates/feltdb/src/phase_2a_failures.rs +59 -15
  72. package/dist/server-source/crates/feltdb/src/phase_2b_network.rs +70 -17
  73. package/dist/server-source/crates/feltdb/src/phase_2c_cascading.rs +23 -6
  74. package/dist/server-source/crates/feltdb/src/phase_3_durability.rs +12 -3
  75. package/dist/server-source/crates/feltdb/src/phase_4_baseline.rs +41 -11
  76. package/dist/server-source/crates/feltdb/src/phase_5_soak.rs +56 -25
  77. package/dist/server-source/crates/feltdb/src/policy_evaluation.rs +701 -245
  78. package/dist/server-source/crates/feltdb/src/production_api.rs +31 -13
  79. package/dist/server-source/crates/feltdb/src/query_performance.rs +6 -8
  80. package/dist/server-source/crates/feltdb/src/replay_fuzzing.rs +5 -5
  81. package/dist/server-source/crates/feltdb/src/replica_acknowledgements.rs +48 -18
  82. package/dist/server-source/crates/feltdb/src/replica_membership.rs +30 -11
  83. package/dist/server-source/crates/feltdb/src/replication_manager.rs +6 -3
  84. package/dist/server-source/crates/feltdb/src/replication_protocol.rs +4 -3
  85. package/dist/server-source/crates/feltdb/src/sharding.rs +36 -10
  86. package/dist/server-source/crates/feltdb/src/state_conflict_contract.rs +516 -0
  87. package/dist/server-source/crates/feltdb/src/state_contract.rs +13 -4
  88. package/dist/server-source/crates/feltdb/src/state_diff_contract.rs +222 -0
  89. package/dist/server-source/crates/feltdb/src/state_facade.rs +82 -54
  90. package/dist/server-source/crates/feltdb/src/state_hash.rs +2 -2
  91. package/dist/server-source/crates/feltdb/src/state_model.rs +1565 -536
  92. package/dist/server-source/crates/feltdb/src/state_transition_store.rs +6 -3
  93. package/dist/server-source/crates/feltdb/src/state_trigger.rs +672 -0
  94. package/dist/server-source/crates/feltdb/src/storage.rs +9 -3
  95. package/dist/server-source/crates/feltdb/src/submission.rs +5 -11
  96. package/dist/server-source/crates/feltdb/src/tcp_transport.rs +6 -8
  97. package/dist/server-source/crates/feltdb/src/transaction_api.rs +24 -35
  98. package/dist/server-source/crates/feltdb/src/transaction_invariants.rs +24 -8
  99. package/dist/server-source/crates/feltdb/src/transaction_preconditions.rs +248 -59
  100. package/dist/server-source/crates/feltdb/src/transactions.rs +17 -20
  101. package/dist/server-source/crates/feltdb/src/trigger_contract.rs +749 -0
  102. package/dist/server-source/crates/feltdb/src/worker_mesh.rs +1 -0
  103. package/dist/server-source/crates/feltdb/src/workload.rs +512 -4
  104. package/dist/server-source/crates/feltdb/src/workload_diagnostics.rs +3 -4
  105. package/dist/server-source/crates/feltdb/tests/bounded_read_contract.rs +132 -0
  106. package/dist/server-source/crates/feltdb/tests/branching_evidence.rs +299 -0
  107. package/dist/server-source/crates/feltdb/tests/compaction_stall_contract.rs +272 -0
  108. package/dist/server-source/crates/feltdb/tests/crash_durability_contract.rs +467 -0
  109. package/dist/server-source/crates/feltdb/tests/current_revision_authority_evidence.rs +309 -0
  110. package/dist/server-source/crates/feltdb/tests/durable_backup_contract.rs +445 -0
  111. package/dist/server-source/crates/feltdb/tests/durable_corruption_contract.rs +518 -0
  112. package/dist/server-source/crates/feltdb/tests/durable_format_compatibility.rs +392 -0
  113. package/dist/server-source/crates/feltdb/tests/feltdb_state_boundary_tests.rs +436 -220
  114. package/dist/server-source/crates/feltdb/tests/fixtures/state_conflict_contract_corpus.json +1916 -0
  115. package/dist/server-source/crates/feltdb/tests/fixtures/state_diff_contract_corpus.json +1878 -0
  116. package/dist/server-source/crates/feltdb/tests/fixtures/trigger_contract_corpus.json +1862 -0
  117. package/dist/server-source/crates/feltdb/tests/operational_health_contract.rs +278 -0
  118. package/dist/server-source/crates/feltdb/tests/pr34_query_collection.rs +2 -1
  119. package/dist/server-source/crates/feltdb/tests/pr35_equality_index.rs +80 -25
  120. package/dist/server-source/crates/feltdb/tests/pr7_self_authorization_proof.rs +5 -8
  121. package/dist/server-source/crates/feltdb/tests/pr8_vocabulary_assessment.rs +52 -44
  122. package/dist/server-source/crates/feltdb/tests/pr9_phase2_boundary_tests.rs +33 -16
  123. package/dist/server-source/crates/feltdb/tests/pr9_phase3a_path_a_tests.rs +22 -7
  124. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_authorized_mutations.rs +41 -22
  125. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_role_based_authorization.rs +25 -8
  126. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_simple_auth_delete.rs +9 -6
  127. package/dist/server-source/crates/feltdb/tests/pr9_phase3c_team_delete_role_authorization.rs +120 -69
  128. package/dist/server-source/crates/feltdb/tests/pr9_teams_role_based_access.rs +21 -10
  129. package/dist/server-source/crates/feltdb/tests/production_readiness_contract.rs +1365 -0
  130. package/dist/server-source/crates/feltdb/tests/reconciliation_application.rs +868 -0
  131. package/dist/server-source/crates/feltdb/tests/reconciliation_wire_format_evidence.rs +221 -0
  132. package/dist/server-source/crates/feltdb/tests/replicated_history_contract.rs +417 -0
  133. package/dist/server-source/crates/feltdb/tests/resource_scoped_revisions.rs +338 -0
  134. package/dist/server-source/crates/feltdb/tests/revision_identity_contract.rs +1039 -0
  135. package/dist/server-source/crates/feltdb/tests/revision_model_decision.rs +739 -0
  136. package/dist/server-source/crates/feltdb/tests/revision_retention_boundary_evidence.rs +427 -0
  137. package/dist/server-source/crates/feltdb/tests/saas_authorization_integration.rs +3 -3
  138. package/dist/server-source/crates/feltdb/tests/saas_invitation_lifecycle.rs +25 -22
  139. package/dist/server-source/crates/feltdb/tests/state_conflict_contract_conformance.rs +1799 -0
  140. package/dist/server-source/crates/feltdb/tests/state_diff_contract_conformance.rs +1316 -0
  141. package/dist/server-source/crates/feltdb/tests/state_model_integration.rs +53 -61
  142. package/dist/server-source/crates/feltdb/tests/state_persistence_integration.rs +156 -61
  143. package/dist/server-source/crates/feltdb/tests/state_store_boundary_evidence.rs +299 -0
  144. package/dist/server-source/crates/feltdb/tests/sync_divergence_evidence.rs +255 -0
  145. package/dist/server-source/crates/feltdb/tests/three_way_input_boundary_evidence.rs +249 -0
  146. package/dist/server-source/crates/feltdb/tests/trigger_contract_conformance.rs +994 -0
  147. package/dist/server-source/crates/feltdb/tests/workload_envelope_contract.rs +442 -0
  148. package/dist/server-source/crates/feltdb-server/src/app_state.rs +16 -1
  149. package/dist/server-source/crates/feltdb-server/src/auth.rs +164 -13
  150. package/dist/server-source/crates/feltdb-server/src/main.rs +695 -47
  151. package/dist/server-source/crates/feltdb-server/src/metrics.rs +21 -0
  152. package/package.json +1 -1
@@ -21,6 +21,8 @@ struct Inner {
21
21
  peer_sync_successes: AtomicU64,
22
22
  peer_sync_failures: AtomicU64,
23
23
  operations_compacted: AtomicU64,
24
+ requests_shed: AtomicU64,
25
+ request_deadlines_exceeded: AtomicU64,
24
26
  }
25
27
 
26
28
  #[derive(Serialize)]
@@ -35,6 +37,12 @@ pub struct MetricsSnapshot {
35
37
  pub peer_sync_successes: u64,
36
38
  pub peer_sync_failures: u64,
37
39
  pub operations_compacted: u64,
40
+ /// Requests refused at the door because the server was already at its
41
+ /// in-flight limit. Non-zero means load is being shed rather than queued.
42
+ pub requests_shed: u64,
43
+ /// Requests the server abandoned for exceeding its own deadline. Non-zero
44
+ /// means scoped operations are stalling, whatever `/health` says.
45
+ pub request_deadlines_exceeded: u64,
38
46
  }
39
47
 
40
48
  impl Metrics {
@@ -65,6 +73,14 @@ impl Metrics {
65
73
  .sync_operations_received
66
74
  .fetch_add(count, Ordering::Relaxed);
67
75
  }
76
+ pub fn request_shed(&self) {
77
+ self.inner.requests_shed.fetch_add(1, Ordering::Relaxed);
78
+ }
79
+ pub fn request_deadline_exceeded(&self) {
80
+ self.inner
81
+ .request_deadlines_exceeded
82
+ .fetch_add(1, Ordering::Relaxed);
83
+ }
68
84
  pub fn peer_sync_success(&self) {
69
85
  self.inner
70
86
  .peer_sync_successes
@@ -92,6 +108,11 @@ impl Metrics {
92
108
  peer_sync_successes: self.inner.peer_sync_successes.load(Ordering::Relaxed),
93
109
  peer_sync_failures: self.inner.peer_sync_failures.load(Ordering::Relaxed),
94
110
  operations_compacted: self.inner.operations_compacted.load(Ordering::Relaxed),
111
+ requests_shed: self.inner.requests_shed.load(Ordering::Relaxed),
112
+ request_deadlines_exceeded: self
113
+ .inner
114
+ .request_deadlines_exceeded
115
+ .load(Ordering::Relaxed),
95
116
  }
96
117
  }
97
118
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "create-feltdb",
3
3
  "private": false,
4
4
  "description": "Create a new FeltDB application with one command",
5
- "version": "0.8.4",
5
+ "version": "0.8.6",
6
6
  "license": "MIT",
7
7
  "bin": {
8
8
  "create-feltdb": "bin/create-feltdb.js"