Changelog
View SourceAll notable changes to Aurora Meter are documented here. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.0] - 2026-07-11
Initial release of the free core.
Added
- Metering —
AuroraMeter.track/4,usage/2,usage_all/1. ETS-backed atomic counters (:ets.update_counter), never touching the database on the hot path; ~8M increments/sec aggregate. IntervalFlusherpersists absolute-value snapshots (idempotent); intervalBroadcasterfans live values over PubSub. Per-feature:durablemode also writes a raw event row. - Entitlements —
check/2,allowed?/2,entitled?/2,remaining/2,reserve/2,3, andwith_quota/3,4(atomic reserve + release-on-raise; correct hard-limit enforcement under concurrency). Hard limits block; metered features allow overage; undeclared features are permissive. - Plans — a compile-time DSL (
use AuroraMeter.Plans) withplan,price,limit,metered, andfeature, validated at compile time. - Subscriptions — local
subscribe/2andplan/1, with a configurable default plan. - Billing seam —
AuroraMeter.Billing.Providerbehaviour +Noopdefault + aBillingfacade, so the core works standalone and Pro plugs in. - LiveView —
usage_meter/1andusage_summary/1components (behind the optional LiveView deps) andAuroraMeter.LiveView.subscribe/1. - Storage —
AuroraMeter.Storagebehaviour + Ecto/Postgres adapter;AuroraMeter.Migrationandmix aurora_meter.gen.migration/install. - Config —
NimbleOptions-validated configuration (fail fast at boot). Telemetry —
[:aurora_meter, :track | :flush | :broadcast].- Bench —
mix aurora_meter.bench.