@ductape/sdk 0.0.4-v55 → 0.0.4-v56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,11 +3,17 @@
3
3
  * Fallback Service
4
4
  *
5
5
  * Code-first API for defining and managing fallbacks with sequential failover.
6
+ * Uses ProductBuilder for CRUD operations and ProcessorService for execution.
7
+ * Implements health-aware sequential failover with minimal latency.
6
8
  */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
7
12
  Object.defineProperty(exports, "__esModule", { value: true });
8
13
  exports.FallbackService = exports.FallbackError = void 0;
9
14
  const types_1 = require("./types");
10
- const resilienceApi_service_1 = require("../api/services/resilienceApi.service");
15
+ const products_service_1 = __importDefault(require("../products/services/products.service"));
16
+ const processor_service_1 = __importDefault(require("../processor/services/processor.service"));
11
17
  /**
12
18
  * Error class for fallback operations
13
19
  */
@@ -395,15 +401,55 @@ class RecordingFallbackContext {
395
401
  * Fallback Service
396
402
  *
397
403
  * Provides code-first API for defining, creating, and managing fallbacks.
404
+ * Uses ProductBuilder for CRUD operations and ProcessorService for execution.
405
+ * Implements health-aware sequential failover with minimal latency.
398
406
  */
399
407
  class FallbackService {
400
408
  constructor(config) {
401
- this.apiService = new resilienceApi_service_1.ResilienceApiService({
402
- token: config.token,
403
- env_type: config.env_type,
404
- base_url: config.base_url,
405
- });
409
+ this.productBuilders = new Map();
410
+ this.processorCache = new Map();
411
+ this.config = config;
406
412
  }
413
+ /**
414
+ * Gets or creates a cached ProductBuilder
415
+ */
416
+ async getProductBuilder(productTag) {
417
+ let builder = this.productBuilders.get(productTag);
418
+ if (!builder) {
419
+ builder = new products_service_1.default({
420
+ workspace_id: this.config.workspace_id,
421
+ public_key: this.config.public_key,
422
+ user_id: this.config.user_id,
423
+ token: this.config.token,
424
+ env_type: this.config.env_type,
425
+ redis_client: this.config.redis_client,
426
+ queues: this.config.queues,
427
+ });
428
+ await builder.initializeProductByTag(productTag);
429
+ this.productBuilders.set(productTag, builder);
430
+ }
431
+ return builder;
432
+ }
433
+ /**
434
+ * Gets or creates a cached ProcessorService for minimal latency
435
+ */
436
+ getProcessor(productTag) {
437
+ let processor = this.processorCache.get(productTag);
438
+ if (!processor) {
439
+ processor = new processor_service_1.default({
440
+ workspace_id: this.config.workspace_id,
441
+ public_key: this.config.public_key,
442
+ user_id: this.config.user_id,
443
+ token: this.config.token,
444
+ env_type: this.config.env_type,
445
+ redis_client: this.config.redis_client,
446
+ queues: this.config.queues,
447
+ });
448
+ this.processorCache.set(productTag, processor);
449
+ }
450
+ return processor;
451
+ }
452
+ // ==================== Code-First API ====================
407
453
  /**
408
454
  * Define a fallback using code-first API
409
455
  *
@@ -456,54 +502,263 @@ class FallbackService {
456
502
  }
457
503
  return definedFallback;
458
504
  }
505
+ // ==================== CRUD via ProductBuilder ====================
459
506
  /**
460
507
  * Create a fallback from a defined fallback or schema
461
508
  */
462
509
  async create(product, fallback) {
463
510
  const schema = 'compile' in fallback ? fallback.compile() : fallback;
464
- return await this.apiService.createFallback(product, schema);
511
+ const builder = await this.getProductBuilder(product);
512
+ const productFallback = {
513
+ tag: schema.tag,
514
+ name: schema.name || schema.tag,
515
+ description: schema.description || '',
516
+ input: schema.input,
517
+ options: schema.options.map(opt => ({
518
+ app: opt.app,
519
+ type: types_1.FeatureEventTypes.ACTION,
520
+ event: opt.event,
521
+ input: opt.input || {},
522
+ output: opt.output || {},
523
+ retries: opt.retries || 2,
524
+ healthcheck: opt.healthcheck,
525
+ check_interval: opt.check_interval,
526
+ })),
527
+ };
528
+ await builder.createFallback(productFallback);
529
+ return await builder.fetchFallback(schema.tag);
530
+ }
531
+ /**
532
+ * Fetch a fallback by tag
533
+ */
534
+ async fetch(product, tag) {
535
+ const builder = await this.getProductBuilder(product);
536
+ return builder.fetchFallback(tag);
537
+ }
538
+ /**
539
+ * Fetch all fallbacks for a product
540
+ */
541
+ async fetchAll(product) {
542
+ const builder = await this.getProductBuilder(product);
543
+ return builder.fetchFallbacks();
465
544
  }
466
545
  /**
467
546
  * Update an existing fallback
468
547
  */
469
548
  async update(product, tag, fallback) {
549
+ const builder = await this.getProductBuilder(product);
470
550
  if ('handler' in fallback && fallback.handler && fallback.input) {
471
551
  const ctx = new RecordingFallbackContext(fallback.input);
472
552
  await fallback.handler(ctx);
473
553
  const schema = ctx.build(tag, fallback.name, fallback.description);
474
- return await this.apiService.updateFallback(product, tag, schema);
554
+ await builder.updateFallback(tag, {
555
+ name: schema.name,
556
+ description: schema.description,
557
+ input: schema.input,
558
+ options: schema.options.map(opt => ({
559
+ app: opt.app,
560
+ type: types_1.FeatureEventTypes.ACTION,
561
+ event: opt.event,
562
+ input: opt.input || {},
563
+ output: opt.output || {},
564
+ retries: opt.retries || 2,
565
+ healthcheck: opt.healthcheck,
566
+ check_interval: opt.check_interval,
567
+ })),
568
+ });
569
+ }
570
+ else {
571
+ await builder.updateFallback(tag, fallback);
475
572
  }
476
- return await this.apiService.updateFallback(product, tag, fallback);
477
573
  }
478
574
  /**
479
- * Fetch a fallback by tag
575
+ * Delete a fallback
480
576
  */
481
- async fetch(product, tag) {
482
- return await this.apiService.getFallback(product, tag);
577
+ async delete(product, tag) {
578
+ const builder = await this.getProductBuilder(product);
579
+ await builder.deleteFallback(tag);
483
580
  }
581
+ // ==================== Execution - Health-Aware Sequential Failover ====================
484
582
  /**
485
- * Fetch all fallbacks for a product
583
+ * Run a fallback with health-aware sequential failover
584
+ *
585
+ * Optimization strategies:
586
+ * 1. Parallel health status lookups from Redis (O(1) per provider)
587
+ * 2. Skip unhealthy providers immediately
588
+ * 3. Cached processor instances to avoid re-initialization
589
+ * 4. Exponential backoff only on failures
590
+ * 5. Short-circuit on first success
486
591
  */
487
- async fetchAll(product) {
488
- return await this.apiService.listFallbacks(product);
592
+ async run(options) {
593
+ var _a;
594
+ const { product, env, tag, input } = options;
595
+ const startTime = Date.now();
596
+ const triedProviders = [];
597
+ // Fetch fallback config
598
+ const fallback = await this.fetch(product, tag);
599
+ if (!fallback) {
600
+ throw new FallbackError(`Fallback '${tag}' not found in product '${product}'`, 'FALLBACK_NOT_FOUND');
601
+ }
602
+ if (!((_a = fallback.options) === null || _a === void 0 ? void 0 : _a.length)) {
603
+ throw new FallbackError(`Fallback '${tag}' has no providers configured`, 'NO_PROVIDERS');
604
+ }
605
+ const processor = this.getProcessor(product);
606
+ // Parallel health status lookup - minimal latency
607
+ const healthStatuses = await this.getHealthStatusesParallel(processor, product, env, fallback.options);
608
+ // Order providers: healthy first, then unknown, then unhealthy
609
+ const orderedProviders = this.orderProvidersByHealth(fallback.options, healthStatuses);
610
+ // Sequential failover with health-aware skipping
611
+ let lastError = null;
612
+ let failoverCount = 0;
613
+ for (const provider of orderedProviders) {
614
+ const providerName = provider.app || provider.event;
615
+ triedProviders.push(providerName);
616
+ // Check if provider is unhealthy and we have healthier alternatives
617
+ const healthStatus = provider.healthcheck ? healthStatuses.get(provider.healthcheck) : null;
618
+ const isUnhealthy = (healthStatus === null || healthStatus === void 0 ? void 0 : healthStatus.status) === 'unavailable';
619
+ // Skip unhealthy providers if we haven't tried all healthy ones
620
+ if (isUnhealthy && failoverCount === 0) {
621
+ // Only skip if there are more providers to try
622
+ const remainingHealthy = orderedProviders
623
+ .slice(triedProviders.length)
624
+ .some(p => {
625
+ const status = p.healthcheck ? healthStatuses.get(p.healthcheck) : null;
626
+ return !status || status.status !== 'unavailable';
627
+ });
628
+ if (remainingHealthy) {
629
+ failoverCount++;
630
+ continue;
631
+ }
632
+ }
633
+ try {
634
+ const result = await this.executeWithRetries(processor, provider, env, product, input);
635
+ return {
636
+ data: result.data,
637
+ provider: providerName,
638
+ latency: Date.now() - startTime,
639
+ wasHealthy: !isUnhealthy,
640
+ failoverCount,
641
+ triedProviders,
642
+ };
643
+ }
644
+ catch (error) {
645
+ lastError = error;
646
+ failoverCount++;
647
+ // Continue to next provider
648
+ }
649
+ }
650
+ // All providers failed
651
+ throw new FallbackError(`All ${fallback.options.length} providers failed. Last error: ${lastError === null || lastError === void 0 ? void 0 : lastError.message}`, 'ALL_PROVIDERS_FAILED', { lastError, triedProviders, failoverCount });
489
652
  }
490
653
  /**
491
- * Delete a fallback
654
+ * Parallel health status lookup from Redis - O(n) with parallel I/O
492
655
  */
493
- async delete(product, tag) {
494
- await this.apiService.deleteFallback(product, tag);
656
+ async getHealthStatusesParallel(processor, product, env, options) {
657
+ const statuses = new Map();
658
+ // Collect healthcheck tags
659
+ const healthcheckTags = options
660
+ .filter(opt => opt.healthcheck)
661
+ .map(opt => opt.healthcheck);
662
+ if (healthcheckTags.length === 0) {
663
+ return statuses;
664
+ }
665
+ // Parallel Redis lookups
666
+ const results = await Promise.allSettled(healthcheckTags.map(async (tag) => {
667
+ try {
668
+ const cached = await processor.getHealthcheckStatusFromCache(product, `${tag}:${env}`);
669
+ return { tag, status: (cached === null || cached === void 0 ? void 0 : cached.status) || 'unknown', latency: cached === null || cached === void 0 ? void 0 : cached.latency };
670
+ }
671
+ catch (_a) {
672
+ return { tag, status: 'unknown' };
673
+ }
674
+ }));
675
+ for (const result of results) {
676
+ if (result.status === 'fulfilled') {
677
+ statuses.set(result.value.tag, {
678
+ status: result.value.status,
679
+ lastLatency: result.value.latency,
680
+ });
681
+ }
682
+ }
683
+ return statuses;
495
684
  }
496
685
  /**
497
- * Run a fallback
686
+ * Order providers by health status: healthy > unknown > unhealthy
687
+ * Maintains original order within each category (first provider = primary)
498
688
  */
499
- async run(options) {
500
- return await this.apiService.runFallback(options);
689
+ orderProvidersByHealth(options, healthStatuses) {
690
+ const healthy = [];
691
+ const unknown = [];
692
+ const unhealthy = [];
693
+ for (const opt of options) {
694
+ if (!opt.healthcheck) {
695
+ healthy.push(opt); // No healthcheck = assume healthy
696
+ }
697
+ else {
698
+ const status = healthStatuses.get(opt.healthcheck);
699
+ if (!status || status.status === 'unknown') {
700
+ unknown.push(opt);
701
+ }
702
+ else if (status.status === 'available') {
703
+ healthy.push(opt);
704
+ }
705
+ else {
706
+ unhealthy.push(opt);
707
+ }
708
+ }
709
+ }
710
+ return [...healthy, ...unknown, ...unhealthy];
711
+ }
712
+ /**
713
+ * Execute provider action with exponential backoff retries
714
+ */
715
+ async executeWithRetries(processor, provider, env, product, input) {
716
+ const maxRetries = provider.retries || 2;
717
+ let lastError = null;
718
+ let retriesUsed = 0;
719
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
720
+ try {
721
+ // Execute app action via processor
722
+ const result = await processor.processAction({
723
+ env,
724
+ product,
725
+ app: provider.app,
726
+ action: provider.event,
727
+ input,
728
+ retries: 0, // We handle retries ourselves
729
+ });
730
+ return { data: result, retriesUsed };
731
+ }
732
+ catch (error) {
733
+ lastError = error;
734
+ retriesUsed++;
735
+ if (attempt < maxRetries) {
736
+ // Exponential backoff: 50ms, 100ms, 200ms (capped at 2s for low latency)
737
+ await new Promise(r => setTimeout(r, Math.min(50 * Math.pow(2, attempt), 2000)));
738
+ }
739
+ }
740
+ }
741
+ throw new FallbackError(`Provider ${provider.app || provider.event} failed after ${maxRetries + 1} attempts: ${lastError === null || lastError === void 0 ? void 0 : lastError.message}`, 'PROVIDER_FAILED', { lastError, retriesUsed });
501
742
  }
502
743
  /**
503
- * Dispatch/schedule a fallback for later execution
744
+ * Dispatch fallback for deferred execution via job queue
745
+ *
746
+ * Note: For immediate execution, use run() instead.
747
+ * Dispatch schedules the fallback for background processing.
504
748
  */
505
749
  async dispatch(options) {
506
- return await this.apiService.dispatchFallback(options);
750
+ const { product, tag } = options;
751
+ const jobId = `fallback_${tag}_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
752
+ // For deferred execution, we run the fallback asynchronously
753
+ setImmediate(async () => {
754
+ try {
755
+ await this.run(options);
756
+ }
757
+ catch (error) {
758
+ console.error(`Deferred fallback execution failed for ${product}:${tag}:`, error);
759
+ }
760
+ });
761
+ return { jobId };
507
762
  }
508
763
  }
509
764
  exports.FallbackService = FallbackService;
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.service.js","sourceRoot":"","sources":["../../src/resilience/fallback.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fallback.service.js","sourceRoot":"","sources":["../../src/resilience/fallback.service.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,12 @@ export declare class HealthcheckError extends Error {
19
19
  */
20
20
  export declare class HealthcheckService {
21
21
  private apiService;
22
+ private config;
22
23
  constructor(config: IResilienceServiceConfig);
24
+ /**
25
+ * Creates a ProcessorService instance for local execution
26
+ */
27
+ private createProcessor;
23
28
  /**
24
29
  * Define a healthcheck using code-first API
25
30
  *
@@ -88,12 +93,55 @@ export declare class HealthcheckService {
88
93
  }): Promise<IHealthcheckStatus>;
89
94
  /**
90
95
  * Manually trigger a healthcheck
96
+ *
97
+ * Executes the healthcheck locally using the ProcessorService and caches
98
+ * the result in Redis for status tracking. On failure, triggers configured
99
+ * notifications, webhooks, and event emissions.
100
+ *
101
+ * Supports the following probe types:
102
+ * - APP: Executes an app action (supports OAuth auto-refresh)
103
+ * - DATABASE: Tests database connection
104
+ * - GRAPH: Tests graph database connection
105
+ * - MESSAGE_BROKER: Tests message broker connection
106
+ * - STORAGE: Tests object storage connection
107
+ * - WORKFLOW: Executes a workflow and checks completion status
91
108
  */
92
109
  run(options: {
93
110
  product: string;
94
111
  env: string;
95
112
  tag: string;
96
113
  }): Promise<IHealthcheckRunResult>;
114
+ /**
115
+ * Handles failure notifications for a healthcheck
116
+ */
117
+ private handleFailureNotifications;
118
+ /**
119
+ * Execute a database healthcheck probe by testing the connection
120
+ */
121
+ private executeDatabaseProbe;
122
+ /**
123
+ * Execute a graph healthcheck probe by testing the connection
124
+ */
125
+ private executeGraphProbe;
126
+ /**
127
+ * Execute a message broker healthcheck probe by testing the connection
128
+ */
129
+ private executeMessageBrokerProbe;
130
+ /**
131
+ * Execute a workflow healthcheck probe by running the workflow
132
+ *
133
+ * Workflow healthchecks execute the workflow with the provided input
134
+ * and check if it completes successfully. This is useful for testing
135
+ * end-to-end workflow functionality.
136
+ */
137
+ private executeWorkflowProbe;
138
+ /**
139
+ * Execute a storage healthcheck probe by testing the connection
140
+ *
141
+ * Storage healthchecks attempt to list objects (with limit 1) to verify
142
+ * connectivity and credentials are working correctly.
143
+ */
144
+ private executeStorageProbe;
97
145
  /**
98
146
  * @deprecated Use run() instead
99
147
  */