BCUtils.PubSubManager: New module to handle Phoenix.PubSub conflicts when multiple applications try to start the same PubSub instance
Added maybe_child_spec/2 for conditional PubSub startup in supervision trees
Added already_started?/1, ensure_started/2, health_check/1, and list_running/0 utilities
Added phoenix_pubsub ~> 2.1 as optional dependency
Documentation: New guide "Resolving Phoenix.PubSub Conflicts" with comprehensive usage examples
Swarm Logging Noise Reduction
BCUtils.LoggerFilters: New module with pre-configured filters to reduce logging noise from verbose libraries
Added filter_swarm/1 to filter out non-error Swarm messages
Added filter_libcluster/1 for LibCluster noise reduction
Added filter_verbose_libs/1 as combined filter for multiple noisy libraries
Added errors_and_warnings_only/1 for aggressive filtering
Documentation: New guide "Filtering Swarm Logs" with multi-layer filtering strategies
Benefits
Eliminates Conflicts: No more :already_started errors when multiple apps use Phoenix.PubSub
Resource Efficient: Single PubSub instance shared across applications
Cleaner Logs: Significant reduction in Swarm logging noise while preserving error visibility
Production Ready: Minimal performance impact with comprehensive error handling
Reusable: Available to all BEAM Campus projects via bc_utils
Usage Examples
PubSub Conflict Resolution
# In supervision tree - automatically handles conflictschildren=[BCUtils.PubSubManager.maybe_child_spec(:my_pubsub),# other children...]|>Enum.filter(&&1)# Remove nil entries
Swarm Log Filtering
# In config/dev.exs - only show Swarm errorsconfig:logger,:console,filters:[swarm_noise:{BCUtils.LoggerFilters,:filter_swarm}]