ExESDB.Options.Simplified (ex_esdb v0.11.0)

Simplified ExESDB configuration module using automatic OTP app discovery.

This module dramatically reduces complexity by:

  1. Automatically discovering the calling application
  2. Using a macro to generate config functions with less duplication
  3. Providing sensible defaults and environment variable overrides

Usage: # Automatic discovery (recommended) ExESDB.Options.data_dir() # Discovers calling app automatically

# Explicit app specification ExESDB.Options.data_dir(:my_app)

# Context-based (for umbrella apps) ExESDB.Options.with_context(:my_app, fn ->

ExESDB.Options.data_dir()    # Uses :my_app context

end)

Summary

Functions

Get complete configuration for an OTP app

Get a specific config value from app environment with default.

Discovers the current OTP application name using multiple strategies.

Generic configuration value getter with automatic app discovery.

Get current application context

Set application context for configuration lookup

Execute function within specific application context

Functions

app_env(otp_app \\ nil)

Get complete configuration for an OTP app

app_env(otp_app, key, default)

Get a specific config value from app environment with default.

data_dir(otp_app \\ nil)

db_type(otp_app \\ nil)

discover_app_name()

Discovers the current OTP application name using multiple strategies.

get_config_value(key, otp_app \\ nil)

Generic configuration value getter with automatic app discovery.

Priority order:

  1. Environment variable
  2. Application configuration
  3. Default value

get_context()

Get current application context

persistence_enabled(otp_app \\ nil)

persistence_interval(otp_app \\ nil)

pub_sub(otp_app \\ nil)

reader_idle_ms(otp_app \\ nil)

set_context(otp_app)

Set application context for configuration lookup

store_description(otp_app \\ nil)

store_id(otp_app \\ nil)

store_tags(otp_app \\ nil)

timeout(otp_app \\ nil)

topologies()

with_context(otp_app, fun)

Execute function within specific application context

writer_idle_ms(otp_app \\ nil)