
There’s a lot of speculation about whether or not AI can replace developers, but maybe we should be asking, "Should AI build this?" Because in my experience, the most critical infrastructure decisions aren't about what's possible—they're about what's sustainable.
Data connectivity sits at the heart of everything our customers build. As AI-generated code becomes more sophisticated, some teams are grappling with a fundamental choice: invest in purpose-built drivers, engineered drivers tailored to the unique data model and nuances of each data source, or trust algorithms to generate connectivity on demand. The appeal is undeniable—why spend weeks engineering a driver when a large-language model (LLM) can produce one in minutes?
But here's what I've observed in production environments: There's a massive difference between code that works and code that works reliably at enterprise scale. In this post, I want to share what I've learned about the differences between purpose-built drivers and AI-generated alternatives, and why I believe asking "Should we?" instead of "Can we?" has never been more important for data architecture decisions.
What are AI-created drivers?
AI-created, or code-generated, drivers are data connectivity components built using automation tools rather than being hand-coded by software engineers. These drivers are typically produced by LLMs or templated code scaffolding systems that automatically generate connection logic and driver code based on metadata from a specific data source, such as API specifications, schema definitions, or example requests.
Once the specification is ingested, the engine produces driver code that handles basic authentication, endpoint access, and query execution within minutes. While this approach enables rapid driver creation, it often results in minimal optimization and generic logic, prioritizing speed of development and broad connectivity coverage.
Benefits
Rapid generation: AI and code-generation tools can produce drivers in minutes instead of days, which can drastically reduce time-to-market.
Cost-effective at scale: Minimal engineering is required to produce each new driver, making this process ideal for platforms that aim to support hundreds or thousands of endpoints.
Fast prototyping: Because drivers can be quickly generated, they're useful for quickly mocking and testing integration endpoints during early-stage development.
Reusable templates and patterns: Code-generated drivers often follow uniform structures, which makes it easy to apply similar logic to future integrations with similar APIs or schemas.
Limitations
Limited capability: Generated drivers typically expose 60-80% of a system's capabilities, covering only basic functionality while skipping advanced capabilities like query slicing, push-down queries, or batching.
Lack of quality assurance and testing: Most AI and code-generated drivers don't undergo full unit, integration, or performance tests, which can make them vulnerable to runtime failures.
No performance tuning: Generated code works but is typically inefficient. You can expect to see unnecessary API calls, missed optimization opportunities, and poor resource usage.
Hard to maintain: Code-generated drivers are typically hard to patch and often require full code regeneration. This can introduce driver inconsistencies or technical debt over time.
Poor error handling: Error messages can be generic or misleading, and AI-created drivers often lack effective retry logic. This makes it difficult to troubleshoot failures in workflows.
Security and compliance risks: Auto-generated code often lacks robust security features, like credential encryption, handling token refreshes, or access controls, which puts your data at risk.
What are CData Drivers?
When we designed CData Drivers, our core philosophy was simple: Data connectivity should never be the reason a business initiative fails. After watching companies struggle with brittle integrations and unreliable connections, we built our drivers around the principle that enterprise-grade connectivity requires more than just making API calls work—it requires understanding the nuances of each system and engineering for reliability at scale.
Every driver we build is meticulously engineered by domain experts who don't just read API documentation; they are specialists in how each system actually behaves in production. Rather than generating quick code, our teams invest in understanding the unique characteristics, limitations, and optimization opportunities of each data source.
The foundation of every driver is built around simplifying data integration by providing simple, low-code SQL-based access to any data source. Whether customers are querying a cloud-based API, writing to an on-premises database, or pulling data from an Excel spreadsheet, we expose a consistent and standard SQL layer so that any client can access data with standard SQL queries.
Benefits
Performance optimization: Our drivers implement system-specific optimizations that dynamically adjust strategies based on system load, data volume, and performance characteristics. This means your applications respond faster, avoid slowdowns, and reduce unnecessary system strain or costs.
Reliability at scale: Purpose-built error handling and retry logic handle failures to maintain operational continuity even when underlying systems experience issues.
Enterprise-grade security: Our drivers use system-specific authentication flows, token management, and permission checking to ensure enterprise-grade data security.
Standards-based connectivity: We support every major driver and adapter technology, including ODBC, JDBC, ADO.NET, MCP, Python, Excel, SSIS, Power BI, Tableau, and more, so you can plug into existing tools and workflows without custom development or new infrastructure.
Deep system intelligence: Our drivers operationalize the complex, often hidden features of each platform, such as calculated columns, custom fields, stored procedures, and complex data transformations.
Key differences
Code that runs vs. code that scales
AI-created drivers quickly parse API documentation or schema files and generate code to support base CRUD operations, but they miss the nuanced understanding that comes from deep system expertise. Our engineering teams don't just analyze documentation: They spend months understanding each data source's unique characteristics and implementing those nuances to develop smarter, more resilient drivers.
For example, when our team built the Salesforce driver, we didn't just focus on making API calls. We studied SOQL optimization patterns, developed intelligent handling for bulk API limitations, and created sophisticated logic for managing complex metadata relationships.
Our database drivers leverage native drivers and implement connection pooling strategies specific to each database engine's architecture.
This difference becomes critical when customers need reliability at scale. I've seen many AI-generated drivers work perfectly in development only to fail when faced with real-world data volumes or edge cases.
One-time code generation vs. complete lifecycle support
Code-generated drivers create an illusion of simplicity that quickly disappears in production environments that demand reliability. When APIs are updated, authentication methods change, or vendors release new features, generated drivers require manual intervention to handle these breaking changes.
Our engineering teams monitor each connected system and proactively test against new releases and updates. When breaking changes occur, we quickly deliver updates through standard release channels without requiring customer intervention. We’ve calculated that our engineering teams spend 70% or more of their efforts on maintenance—a commitment and burden most companies vastly underestimate.
Shallow scaffolding vs. intelligent data discovery
AI-generated drivers typically expose a narrow subset of functionality with minimal schema awareness and often no metadata discovery at all. Our approach goes deeper to expose advanced features like pagination, push-down optimization, and dynamic metadata discovery.
This distinction becomes particularly important as AI agents become more prevalent in data workflows. Agents don't just need access to data—they need to understand it, manipulate it intelligently, and handle edge cases gracefully without human intervention. AI agents working with our drivers benefit from semantic context and relationship mappings that enable them to make intelligent decisions.
Real-world example: AI-generated Jira plugin vs. CData Jira Driver
To evaluate the difference between the two approaches, we tested a typical AI-generated Jira plugin against our Jira driver. Here are the results:
Feature | AI-generated Jira plugin | CData Jira Driver |
|---|
Authentication | Only supports Basic and API Token authentication | Supports authentication through Basic, API Token, Crowd, OAuth 2.0, OAuth 1.0, or Okta |
Performance | Processes results sequentially with no enhanced performance features | Supports multithreaded pagination, client-side filtering, and query slicing |
Data model | Offers read-only access via 1:1 API mappings with no data type distinction (every field reported as a string) and requires manual configuration for multiple endpoints | Supports full CRUD operations and exposes Jira data as a normalized relational data model, where primary objects and related sub-objects are split into separate tables |
API coverage | Partially supports the Jira REST API and Jira Service Management REST API, only exposing core objects | Full coverage for both the Jira REST API and the Jira Service Management REST API |
Error logging | No configurable logging available, only runtime errors displayed | Offers configurable verbose logging and internal operations logging |
Additional features | Offers partial custom field support that requires manual mapping | Supports stored procedures for API actions, custom fields, and custom schema definition |
The AI-generated plugin represents a typical example of what happens when algorithms prioritize speed over depth. It exposes a limited set of endpoints with minimal support for advanced features like custom fields, filtering, or data model relationships. Customers may run into performance issues with larger datasets, and schema changes in Jira can break the connection. And when errors occur, the responses are often poorly structured, making it difficult to isolate root causes and troubleshoot issues efficiently.
In contrast, our Jira driver was purpose-built to support the full breadth of Jira connectivity and dynamically adapts to schema changes. It supports full CRUD operations and presents Jira data in a relational model that any BI tool or integration platform can consume easily.
Making the strategic investment
While AI-generated drivers may appear cost-effective initially, I've seen the hidden costs of maintenance, performance issues, and reliability problems quickly erode those savings. What appears to be savings during development often transforms into technical debt in production environments.
From my perspective as someone who's spent years building and scaling enterprise software, choosing purpose-built drivers represents a strategic investment in organizational excellence. Our drivers offer enterprise-grade security, long-term stability, comprehensive feature coverage, and the deep system intelligence that modern workflows depend on to operate efficiently.
Purpose-built drivers don't just move data—they provide reliability, scalability, and a solid foundation for modern data ecosystems. In an era where data connectivity can make or break business initiatives, the question isn't whether you can afford to invest in quality infrastructure, but whether you can afford not to.
Short-term gains, or long-term sustainability?
The future belongs to organizations that understand data connectivity as a core competency, not just a commodity. The choice between AI-generated and purpose-built drivers isn't just a technical decision; it's a strategic one that will impact your ability to scale, adapt, and compete in an increasingly data-driven world.
I believe that asking "Should we?" instead of "Can we?" leads to better long-term outcomes. And when it comes to the infrastructure that powers your most critical data workflows, the answer should always prioritize sustainability over speed.
Explore CData Drivers and Connectors
Get blazing-fast access to live data with seamless connectivity from your data sources to the tools you use every day. Our standards-based connectors make data integration effortless—just point, click, and go.
Try them now