@@ -11,28 +11,28 @@ This plan addresses performance issues in the aibtcdev-cache system under bursty
1111
1212## Implementation Steps
1313
14- ### 1. Update src/config.ts (AppConfig)
14+ ### 1. Update src/config.ts (AppConfig) - Completed
1515- Add ` HIRO_API_KEYS ` as an array from env.
1616- Add methods: ` getHiroDoIds() ` (hash keys to DO IDs), ` getKeyForDoId() ` (reverse lookup).
1717
18- ### 2. Update src/index.ts (Main Worker)
18+ ### 2. Update src/index.ts (Main Worker) - Completed
1919- Initialize CacheService and CacheKeyService.
2020- For /contract-calls/read-only/, parse params/body, generate cache key, check KV if !bustCache.
2121- On miss/bust, use round-robin to select DO via KV counter.
2222
23- ### 3. Update src/durable-objects/contract-calls-do.ts (ContractCallsDO)
23+ ### 3. Update src/durable-objects/contract-calls-do.ts (ContractCallsDO) - Completed
2424- Assign hiroApiKey based on DO ID.
2525- Pass key to StacksContractFetcher.
2626- When enqueuing, set priority (higher for non-busts).
2727
28- ### 4. Update src/services/stacks-api-service.ts (StacksApiService)
28+ ### 4. Update src/services/stacks-api-service.ts (StacksApiService) - Completed
2929- Accept hiroApiKey in constructor.
3030- Use it for API auth middleware.
3131
32- ### 5. Update src/services/stacks-contract-data-service.ts (StacksContractFetcher)
32+ ### 5. Update src/services/stacks-contract-data-service.ts (StacksContractFetcher) - Completed
3333- Accept and forward hiroApiKey to StacksApiService.
3434
35- ### 6. Update src/services/request-queue-service.ts (RequestQueue)
35+ ### 6. Update src/services/request-queue-service.ts (RequestQueue) - Completed
3636- Add ` priority ` to QueuedRequest.
3737- Accept priority in enqueue.
3838- Sort queue by priority in processQueue.
@@ -48,7 +48,7 @@ This plan addresses performance issues in the aibtcdev-cache system under bursty
4848- Deploy to staging, integrate with frontend for real-world testing.
4949
5050## Additional Enhancements
51- ### Integrate Hiro Rate Limit Headers
51+ ### Integrate Hiro Rate Limit Headers - Completed
5252- Update StacksApiService to parse response headers (e.g., x-ratelimit-remaining-stacks-minute, ratelimit-remaining) after API calls.
5353- Use headers to dynamically adjust TokenBucket (e.g., sync available tokens with remaining counts, respect retry-after).
5454- Log header info for monitoring.
0 commit comments