t1agob/eventsourcing-qldb
50.0
Weak · 21 September 2026
2.1k
lines of production code
TypeScript
with JavaScript
4
measurements over time
What this system is
Features
Added CDK TypeScript entry point for AdsStack
A new TypeScript entry point (cdk-typescript.ts) was added to the CDK bin directory. This file initializes the CDK App and instantiates the AdsStack, enabling the deployment of the AdsStack infrastructure via the CDK CLI.
cdk/bin · high confidence
Added DynamoDB processor for Kinesis stream
Introduced a new serverless function, DynamoProcessor, which processes Kinesis records containing Ion-format data. The handler deserializes the records, extracts ad metadata (such as title, price, and category), and persists or updates the corresponding item in a DynamoDB table. A helper module handles the DynamoDB update and delete operations, ensuring that ad data is synchronized from the stream to the database.
backend/src/DynamoProcessor · high confidence
Added ESProcessor to handle Kinesis records and sync ads to Elasticsearch
A new serverless function, ESProcessor, has been introduced to process incoming Kinesis data streams. The handler.ts file parses Ion-format records, distinguishing between ad updates and deletions, and forwards the extracted ad data to an Elasticsearch cluster via HttpHelper. The implementation includes a model (ESAd) for ad data, a helper for Elasticsearch HTTP requests (createOrUpdateAd, deleteAd), and the necessary build configuration (webpack, tsconfig) to package the function for AWS Lambda.
backend/src/ESProcessor · high confidence
Added periodic QLDB snapshot export to S3
A new backend component in the PeriodicSnapshot directory enables the periodic export of Amazon QLDB journal data to an S3 bucket. The handler.ts file implements a Lambda function that calculates the previous month's date range and triggers an export via the AWS QLDB SDK, while serverless.ts configures the AWS provider, runtime, and environment variables (ledger name, role ARN, S3 bucket) for the deployment.
backend/src/PeriodicSnapshot · high confidence
Initial CDK project scaffolding and build configuration
The CDK directory is initialized with standard project scaffolding, including TypeScript configuration (tsconfig.json), a Jest test configuration (jest.config.js), and a build script (package-projects.sh) that automates packaging for multiple backend services. This establishes the development environment and build pipeline for the CDK application.
cdk · high confidence
New Replay API endpoint for querying and syncing entity history
A new backend service, ReplayAPI, has been introduced to support replaying entity states to a secondary store. The implementation includes a Lambda handler that queries an Amazon QLDB ledger for historical data of specific entities (e.g., 'Ads') within a given time range, and then upserts those historical records into a DynamoDB table via a helper function. The service is configured via Serverless framework with specific Webpack and TypeScript settings.
backend/src/ReplayAPI · high confidence
Behavioural changes
Migrated AdClientAPI to TypeScript
The AdClientAPI backend component has been rewritten from .NET to TypeScript, introducing a new serverless function that queries an Elasticsearch endpoint for ad data. This change includes the addition of a TypeScript configuration, a Webpack build setup for the serverless framework, and a new \handler.ts\ entry point that processes search queries and returns ad results as JSON.
backend/src/AdClientAPI · high confidence
Migrated AdPublisher and AdReader APIs to TypeScript
The AdPublisher and AdReader backend services have been rewritten in TypeScript, replacing the previous .NET implementation. This change updates the API handlers to use the Amazon QLDB driver for Node.js and introduces a new GET operation for the AdReader that queries DynamoDB, while the AdPublisher API continues to use QLDB for creating, updating, and deleting ads. The migration includes new TypeScript configuration files (tsconfig.json) and Webpack build setups for both services.
backend/src/AdReaderAPI · medium confidence
Migrated ad processing and storage to DynamoDB and QLDB
The CDK stack now provisions a DynamoDB table for state storage and a QLDB ledger for ad data, replacing previous .net-based processing. The architecture routes ad events from QLDB to Kinesis, which triggers a Lambda function to process data into Elasticsearch. This change introduces DynamoDB as a new state store and integrates QLDB for ledger-based ad tracking, shifting the backend from .NET to TypeScript for the processor and client APIs.
cdk/lib · medium confidence
Test coverage
Added initial test coverage for the CDK TypeScript stack
A new test file, cdk-typescript.test.ts, has been added to the cdk/test directory. This file contains a basic unit test for the AdsStack component, verifying that the stack initializes correctly with an empty resources configuration.
cdk/test · high confidence
Dependencies
Added package manifests for multiple backend services
New package.json and package-lock.json files were added for the AdClientAPI, AdPublisherAPI, AdReaderAPI, DynamoProcessor, ESProcessor, and PeriodicSnapshot services. These files define the Node.js dependencies and devDependencies for each service, including libraries such as axios, aws-sdk, and serverless-webpack, establishing the build and runtime environment for these components.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 49 → 50 (+0.6)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 70 → 59 (-10.4)
- Architecture 100 → 67 (-32.8)
- Maturity 62 → 61 (-0.9)
- Readiness 31 → 40 (+8.7)
- Security 56 → 57 (+0.6)
Resolved (60)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/DynamoProcessor/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical vulnerability: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- High CVE: [GHSA redacted] (cdk/package-lock.json)
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- High CVE: [GHSA redacted] (cdk/package-lock.json)
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- High CVE: [GHSA redacted] (cdk/package-lock.json)
- …and 40 more
New (98)
- Coverage not measured — JavaScript/TypeScript suite
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (cdk/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/DynamoProcessor/package-lock.json)
- Critical CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Critical vulnerability: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (the committed lockfile is in a format this engine cannot resolve)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- High CVE: [GHSA redacted] (cdk/package-lock.json)
- High CVE: [GHSA redacted] (cdk/package-lock.json)
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- High CVE: [GHSA redacted] (backend/src/AdClientAPI/package-lock.json)
- …and 78 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
t1agob/eventsourcing-qldb was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 480f8fd5c9433b4b5c645d2e66d5d82871605951 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.