From 4a670af34161e2a0fc2be158798b79451c9d8124 Mon Sep 17 00:00:00 2001 From: nutcas3 Date: Sat, 25 Apr 2026 05:40:09 +0300 Subject: [PATCH] feat: Add caching layer to carrier connector profile repository with 5-minute TTL - Add CachedProfileStore wrapper around PostgresProfileStore with 5-minute TTL - Add defer close for underlying postgresRepo to ensure proper cleanup - Rename profileRepo variable to postgresRepo for clarity before wrapping - Add caching layer to reduce database load for profile lookups --- apps/carrier-connector/main.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/carrier-connector/main.go b/apps/carrier-connector/main.go index 3436999..75a3e51 100644 --- a/apps/carrier-connector/main.go +++ b/apps/carrier-connector/main.go @@ -46,10 +46,14 @@ func main() { if dsn == "" { handler.Logger.Fatal().Msg("DATABASE_DSN is required (no in-memory fallback)") } - profileRepo, err := repository.NewPostgresProfileStore(dsn) + postgresRepo, err := repository.NewPostgresProfileStore(dsn) if err != nil { handler.Logger.Fatal().Err(err).Msg("Failed to connect to Postgres") } + defer postgresRepo.Close() + + // Wrap with cache (5 minute TTL) + profileRepo := repository.NewCachedProfileStore(postgresRepo, 5*time.Minute) defer profileRepo.Close() setupRoutes(router, client, profileRepo)