Default
Default
In-browser search
Settings
Barrel P2P follows semantic versioning for 0.x: minor bumps (0.x → 0.y) may
change documented public APIs; patch bumps (0.x.y → 0.x.y+1) are
non-breaking. See README.md for the
full policy. 1.0 is not yet on the roadmap.
Stability tiers used below:
Tier Promise supported The team avoids silently breaking it. Intentional breaks land with a CHANGELOG entry and deprecation. beta Works as documented but the shape may change across a 0.x minor bump. experimental Anything may change. Use at your own risk; the next minor may rename, redesign, or remove it.
Membership and overlay Feature Tier Coverage notes barrel_p2p:join/1 , leave/0supported CT: barrel_p2p_hyparview_SUITE, barrel_p2p_proto_dist_SUITE barrel_p2p:active_view/0 , passive_view/0supported CT: barrel_p2p_hyparview_SUITE HyParView shuffle and promote-from-passive supported CT: barrel_p2p_churn_SUITE, soak broadcast_burst barrel_p2p:subscribe/0,1, unsubscribe/1supported CT: barrel_p2p_hyparview_SUITE Plumtree gossip (barrel_p2p_plumtree) supported CT: barrel_p2p_plumtree_SUITE; soak broadcast_burst
Distribution Feature Tier Coverage notes -proto_dist barrel_p2p boot pathsupported CT: barrel_p2p_proto_dist_SUITE barrel_p2p_dist carrier defaultssupported CT: barrel_p2p_dist_basic_SUITE Ed25519 auth + TLS channel binding (v2) supported CT: barrel_p2p_dist_auth_SUITE, barrel_p2p_proto_dist_SUITE TOFU vs strict trust modes supported CT: barrel_p2p_dist_auth_basic_SUITE Idle dist-channel GC (barrel_p2p_dist_gc) supported CT case gc_skips_live_streams; EUnit barrel_p2p_dist_gc_tests barrel_p2p:migrate_peer/1,2beta EUnit: barrel_p2p_migrate_peer_tests
Service registry Feature Tier Coverage notes register_service/1,2,3, unregister_service/1supported CT: barrel_p2p_registry_SUITE lookup/1, lookup_local/1, list_services/0supported CT: barrel_p2p_registry_SUITE whereis_service/1,2 with overlay fallbacksupported CT: barrel_p2p_registry_SUITE, barrel_p2p_router_SUITE Via callbacks ({via, barrel_p2p, _}) supported CT: barrel_p2p_registry_SUITE global_register/1 proxy bridgebeta CT: barrel_p2p_registry_SUITE get_proxy/1beta CT: barrel_p2p_registry_SUITE Service events API (subscribe_services/0,1) beta CT: barrel_p2p_service_events_SUITE
Singletons and leader election Feature Tier Coverage notes lead/1,2, resign/1, leader/1, is_leader/1beta CT: barrel_p2p_leader_SUITE, barrel_p2p_leader_e2e_SUITE {barrel_p2p_leader, _, {elected, Fence} | revoked} msgsbeta CT: barrel_p2p_leader_SUITE HLC fencing token (fence/1) beta CT: barrel_p2p_leader_e2e_SUITE (F2 > F1 across leader failover) peer_up/peer_down re-electionbeta CT: barrel_p2p_leader_e2e_SUITE
Sharded placement Feature Tier Coverage notes place/1, owners/2, is_owner/1, partition/1beta CT: barrel_p2p_shard_SUITE, barrel_p2p_shard_e2e_SUITE members/0 (lease-based live-node set)beta CT: barrel_p2p_shard_SUITE, barrel_p2p_shard_e2e_SUITE {barrel_p2p_shard, {acquired | released, P}} eventsbeta CT: barrel_p2p_shard_SUITE, barrel_p2p_shard_e2e_SUITE
Durable reminders Feature Tier Coverage notes remind/3, remind_after/3, cancel_reminder/1beta CT: barrel_p2p_reminder_SUITE, barrel_p2p_reminder_e2e_SUITE subscribe_reminders/0,1, unsubscribe_reminders/1beta CT: barrel_p2p_reminder_SUITE {barrel_p2p_reminder, Key, Payload, Fence} deliverybeta CT: barrel_p2p_reminder_SUITE (stable fence, no double-fire) Survivor fires after owner death beta CT: barrel_p2p_reminder_e2e_SUITE (kill owner before fire) Disk persistence (survives full-cluster restart) beta CT: barrel_p2p_reminder_e2e_SUITE (reminder_survives_full_cluster_restart)
Replicated maps Feature Tier Coverage notes new_map/1,2, delete_map/1beta CT: barrel_p2p_map_SUITE, barrel_p2p_map_e2e_SUITE map_put/3, map_remove/2, map_get/2 , map_keys/1, map_to_list/1beta CT: barrel_p2p_map_SUITE; convergence in barrel_p2p_map_e2e_SUITE subscribe_map/1,2, unsubscribe_map/1,2beta CT: barrel_p2p_map_SUITE (events, DOWN cleanup) {barrel_p2p_map, Name, {put | remove, ...}} eventsbeta CT: barrel_p2p_map_SUITE Late-join full-sync from peers beta CT: barrel_p2p_map_e2e_SUITE (map created after cluster formation) Optional disk persistence (persist => true) beta CT: barrel_p2p_map_SUITE (persist_recovers_after_restart), barrel_p2p_map_e2e_SUITE (persist_map_survives_full_cluster_restart)
Streams Feature Tier Coverage notes barrel_p2p_streams tagged multiplexsupported EUnit: barrel_p2p_streams_tests, prop suite Reserved <<"barrel_p2p:", _>> tag namespace supported (documented; future-proofs internal protocols)
CRDT and time Feature Tier Coverage notes barrel_p2p_ormap (OR-Map CRDT)supported CT: barrel_p2p_ormap_SUITE; prop suite barrel_p2p_hlc (Hybrid Logical Clock)supported CT: barrel_p2p_hlc_SUITE; prop suite barrel_p2p_replica replication behaviourbeta CT: the 4 consumer suites + barrel_p2p_map_e2e_SUITE Periodic anti-entropy (reminder + map) beta CT: barrel_p2p_anti_entropy_e2e_SUITE (off/on convergence) barrel_p2p_crdt_wire safe gossip ingestsupported EUnit: barrel_p2p_crdt_wire_tests; CT: barrel_p2p_map_SUITE barrel_p2p_replica_log (WAL + snapshot store)supported EUnit: barrel_p2p_replica_log_tests
Operations Feature Tier Coverage notes barrel_p2p_rotate:rotate_cert/0,1beta EUnit: barrel_p2p_rotate_tests barrel_p2p_rotate:rotate_identity/0,1beta EUnit: barrel_p2p_rotate_tests instrument metricsbeta EUnit: barrel_p2p_metrics_tests Discovery backends (file, DNS, static) supported EUnit: barrel_p2p_discovery_tests
Auxiliary Feature Tier Coverage notes External relay adapter seam experimental Docs only; no committed adapter Soak suite (BARREL_P2P_CT_SOAK=1) experimental One active case; rest is scaffolding Bench harness (bench/run.sh) experimental Soft CI regression gate barrel_p2p:start_service_holder/1experimental Integration-test helper; may move out of barrel_p2p.erl
When a feature changes supported → supported (refined): CHANGELOG entry, no version bump required if the change is non-breaking.supported → breaking change: deprecation in one minor, removal at the earliest in the next minor. CHANGELOG entry on both.beta → supported: CHANGELOG entry on the minor that promotes it.beta → breaking: minor bump, CHANGELOG entry, no deprecation cycle required.experimental: changes land without ceremony but should still appear in CHANGELOG when they affect callers.