Contact us
Our team would love to hear from you.
EffectiveSoft built an AI-assisted pipeline that sorts it out on the way from Amazon S3 to Amazon Redshift.
Fifteen years of data from over 100 sources, and every one of them structures files differently. EffectiveSoft built an AI-assisted pipeline that sorts it out on the way from Amazon S3 to Amazon Redshift. Rule-based matching handles what it can, Anthropic’s Claude resolves the column names it can’t, and a final compatibility check against the live warehouse schema gates every load. Anything still ambiguous becomes a one-reply Slack approval that teaches the system for next time. Manual mapping effort fell 60%, onboarding went from weeks to days, and throughput scales 3.5x horizontally.
Webbula
USA
Modernization of the data ingestion pipeline
EffectiveSoft client, Webbula, is a data quality and technology company founded in 2009. It helps brands and marketers clean, verify, and enrich customer data. The company focuses on identifying email-based threats and other risky or low-quality signals and providing curated datasets to enable marketing campaigns targeted at audiences based on real consumer data.
The company is undergoing a broad modernization initiative to consolidate multiple mature products into a unified platform while simultaneously enhancing the architecture of their core data platform.
EffectiveSoft serves as the delivery partner driving both initiatives.
Over 15 years of operation, Webbula had accumulated terabytes of valuable data from more than 100 external sources. These data sources are frequently updated and refreshed, requiring regular processing and maintenance. The datasets are stored within the company’s AWS ecosystem, with incoming files arriving in Amazon S3. Each source follows its own data model: some files include clearly defined headers, while others contain no metadata at all. Many also use different naming conventions or structures for the same attributes. This forces human intervention to properly process the data to update their data models.
To optimize the process and keep pace with growing data volumes and an increasing number of sources, and to provide downstream data processing a consistent foundation, Webbula needed to modernize how incoming data is standardized at scale.
Fully deterministic ingestion pipelines have a structural weakness: they only work for inputs they were explicitly programmed to handle. In Webbula’s environment:
email_addr, EmailAddress, e-mail), and some files carried no header row at all.The goal of the engagement was to remove the human bottleneck: reduce manual schema-mapping work to the small set of genuinely ambiguous cases, and make everything else flow through automatically.
Concept view: files stream in from S3 in a range of supported formats; schemas are resolved through layered deterministic-then-AI logic; only compatible, high-confidence data reaches Redshift, while ambiguous files go to a Slack review queue whose approvals feed both the warehouse and a self-growing alias dictionary.
A single reader streams any supported input—plain delimited files, Excel workbooks, and GZIP/BZIP2/ZSTD compression, plus ZIP, RAR, 7z, and tar archives traversed entry by entry. Files above a configurable threshold (200 MB by default) are never fully buffered in memory; archive entries are extracted to an S3 staging prefix before loading. Per-file failures are isolated to an S3 error prefix without failing the batch.
DESCRIBE plus local type-compatibility rules—no AI call). If more than a configurable fraction of columns mismatch (5% by default), the file is escalated instead of loaded.Escalated files are copied to an S3 pending queue and posted to a Slack channel with the filename, escalation reason, the proposed mapping, and a five-row data sample. A reviewer replies in-thread with the approved mapping as JSON. A background poller picks up the approval, merges it into the alias dictionary, and loads the file automatically—no engineer touches the pipeline. The next file with those column names resolves from the dictionary without AI or human involvement.
Loading is engineered for parallel execution: data is COPY-ed into a per-load temp table and promoted with a single INSERT ... SELECT, which populates audit metadata columns (_created_at_ts, _updated_at_ts, _is_deleted_flag, _filepath) atomically via table defaults. This design eliminated the deadlocks that a naive COPY-then-UPDATE approach produced under parallel workers; transient Redshift errors (deadlocks, serialization failures) are additionally retried automatically. Connections work in two modes: direct (Redshift Serverless in-VPC, used in the container) and an SSM port-forwarding tunnel for local development.
The pipeline ships as a Docker image for AWS Batch: all configuration flows through environment variables (secrets separated from committed config), and each run writes an aggregate result.json to S3 with rows loaded, files processed, files escalated, and files errored. The codebase is covered by 114 unit tests with all AWS and Anthropic calls fully mocked.
The intelligent ingestion layer transformed one of the most labor-intensive stages of Webbula’s data pipeline. By combining deterministic schema resolution with Claude-assisted mapping, normalization, and classification for novel or ambiguous fields, we significantly reduced the manual effort required to onboard new data sources and prepare datasets for analytics. Files with known or inferable schemas flow from S3 to Redshift with zero human involvement; only genuinely ambiguous files reach a person as a one-reply Slack approval.
Different file formats through one entry point. The platform can now ingest a wider variety of file formats without requiring custom mapping rules for each source. This accelerates the onboarding of new datasets while reducing operational overhead and improving scalability. Seven compression/archive families and four tabular formats are handled by a single pipeline invocation against an S3 prefix, replacing per-format handling logic.
Auditable by construction. Deterministic routing, confidence thresholds in config, per-run result manifests in S3, and source-file lineage on every loaded row make the pipeline’s behavior inspectable end to end.
Our team would love to hear from you.
Fill out the form, and we’ve got you covered.
What happens next?
San Diego, California
4445 Eastgate Mall, Suite 200
92121, 1-800-288-9659
San Francisco, California
50 California St #1500
94111, 1-800-288-9659
Pittsburgh, Pennsylvania
One Oxford Centre, 500 Grant St Suite 2900
15219, 1-800-288-9659
Durham, North Carolina
RTP Meridian, 2530 Meridian Pkwy Suite 300
27713, 1-800-288-9659
San Jose, Costa Rica
C. 118B, Trejos Montealegre
10203, 1-800-288-9659