diff --git a/packages/services/rate-limit/src/limiter.ts b/packages/services/rate-limit/src/limiter.ts index 644313706..4eea687f3 100644 --- a/packages/services/rate-limit/src/limiter.ts +++ b/packages/services/rate-limit/src/limiter.ts @@ -59,7 +59,7 @@ export function createRateLimiter(config: { const emails = createEmailScheduler(config.emails); const { logger } = config; - const postgres$ = createPostgreSQLStorage(config.storage.connectionString); + const postgres$ = createPostgreSQLStorage(config.storage.connectionString, 1); let initialized = false; let intervalHandle: ReturnType | null = null; diff --git a/packages/services/server/src/index.ts b/packages/services/server/src/index.ts index 17a192fbb..e9d19bb13 100644 --- a/packages/services/server/src/index.ts +++ b/packages/services/server/src/index.ts @@ -126,7 +126,7 @@ export async function main() { }; } - const storage = await createPostgreSQLStorage(createConnectionString(process.env as any)); + const storage = await createPostgreSQLStorage(createConnectionString(process.env as any), 10); const graphqlLogger = createGraphQLLogger(); const registry = createRegistry({ diff --git a/packages/services/storage/src/db/pool.ts b/packages/services/storage/src/db/pool.ts index e4e50c30c..44cd8a0c6 100644 --- a/packages/services/storage/src/db/pool.ts +++ b/packages/services/storage/src/db/pool.ts @@ -11,10 +11,11 @@ import { createSentryInterceptor } from './sentry'; const dbInterceptors: Interceptor[] = [createQueryLoggingInterceptor(), createSentryInterceptor()]; -export async function getPool(connection: string) { +export async function getPool(connection: string, maximumPoolSize: number) { const pool = await createPool(connection, { interceptors: dbInterceptors, captureStackTrace: false, + maximumPoolSize, }); function interceptError>(methodName: K) { diff --git a/packages/services/storage/src/index.ts b/packages/services/storage/src/index.ts index a3754ee55..fe8005b7a 100644 --- a/packages/services/storage/src/index.ts +++ b/packages/services/storage/src/index.ts @@ -72,8 +72,8 @@ function getProviderBasedOnExternalId(externalId: string): AuthProvider { return 'AUTH0'; } -export async function createStorage(connection: string): Promise { - const pool = await getPool(connection); +export async function createStorage(connection: string, maximumPoolSize: number): Promise { + const pool = await getPool(connection, maximumPoolSize); function transformUser(user: users): User { return { diff --git a/packages/services/storage/src/tokens.ts b/packages/services/storage/src/tokens.ts index cf9ce0462..acf24a606 100644 --- a/packages/services/storage/src/tokens.ts +++ b/packages/services/storage/src/tokens.ts @@ -2,8 +2,8 @@ import { sql } from 'slonik'; import { getPool, tokens, toDate } from './db'; import type { Slonik } from './shared'; -export async function createTokenStorage(connection: string) { - const pool = await getPool(connection); +export async function createTokenStorage(connection: string, maximumPoolSize: number) { + const pool = await getPool(connection, maximumPoolSize); return { async getTokens({ target }: { target: string }) { diff --git a/packages/services/stripe-billing/src/billing-sync.ts b/packages/services/stripe-billing/src/billing-sync.ts index fb4a7cd05..8b314c56b 100644 --- a/packages/services/stripe-billing/src/billing-sync.ts +++ b/packages/services/stripe-billing/src/billing-sync.ts @@ -16,7 +16,7 @@ export function createStripeBilling(config: { }; }) { const logger = config.logger; - const postgres$ = createPostgreSQLStorage(config.storage.connectionString); + const postgres$ = createPostgreSQLStorage(config.storage.connectionString, 10); let intervalHandle: null | ReturnType = null; // feat(metered-usage) // const estimationApi = createTRPCClient({ diff --git a/packages/services/tokens/src/storage.ts b/packages/services/tokens/src/storage.ts index 673c6e906..171cf9eb8 100644 --- a/packages/services/tokens/src/storage.ts +++ b/packages/services/tokens/src/storage.ts @@ -23,7 +23,7 @@ export interface Storage { export async function createStorage(): Promise { const connectionString = createConnectionString(process.env as any); - const db = await createTokenStorage(connectionString); + const db = await createTokenStorage(connectionString, 5); function transformToken(item: tokens): StorageItem { return {