in Blog

April 24, 2025

Modern Data Engineering Toolset: A Practical Perspective

Author:




Vadym Mariiechko

Data Engineer


Reading time:




5 minutes


Selecting the right tools can significantly influence the success of any data engineering project. While the field offers a vast range of platforms and frameworks, the examples shared here reflect one of our real-world projects at Addepto, where Databricks features prominently. Keep in mind that every organization has unique requirements, and the technologies mentioned here are tailored for our current project scope.

Key Takeaways

  • A modern data engineering toolkit spans five layers: core platform (Databricks, Spark, Kafka), visualization (Databricks Apps, Streamlit, Folium), development environment (Cursor IDE, ChatGPT reasoning models), collaboration (Slack, Teams, Azure DevOps), and real-time processing (Spark Structured Streaming, Autoloader, DLT).
  • Databricks serves as a unified data intelligence platform — combining orchestration (Workflows, DLT), transformation (Spark, dbt, SQLMesh), and application deployment (Databricks Apps) in a single environment.
  • For rapid prototyping, Databricks Apps + Streamlit + Folium lets teams demonstrate interactive dashboards without spinning up separate visualization infrastructure.
  • Tool selection depends on three factors: project requirements (batch vs. real-time, scalability), team expertise (skill sets and learning curves), and integration capabilities (compatibility with existing systems, APIs, and data formats).
  • The toolkit should evolve incrementally — start with core essentials, expand as project requirements and team capabilities grow, and stay flexible enough to shift from batch to real-time processing as data volumes and business needs change.

Core Data Platform Technologies

In many modern data engineering scenarios, you’ll see a blend of powerful processing engines, orchestration tools, and storage solutions. For one of our current projects, we leverage Databricks as our central data intelligence platform because it offers an integrated environment for data engineering, analytics, and machine learning on a unified platform.
Key platform components we’re exploring in this project include:

  • dltHub for quick and efficient development of batch pipelines, particularly in the early stages
  • Databricks Workflows for orchestrating batch processing pipelines
  • Databricks DLT for orchestrating and managing streaming data pipelines
  • Apache Spark for large-scale data processing
  • Kafka for real-time messaging and event streaming
  • DBT or SQLMesh for advanced data transformations

Visualization and Dashboard Development

Communicating insights effectively is a critical part of a Data Engineer’s role. We often use Databricks Apps in combination with frameworks like Streamlit and Folium to quickly prototype and demonstrate interactive dashboards. This setup allows us to:

  • Develop and deploy prototypes rapidly
  • Facilitate interactive data exploration for stakeholders
  • Integrate seamlessly with the underlying data platform

In short, it’s a convenient way to showcase early insights without spinning up a separate infrastructure for visualization.

Development Environment

A well-configured development environment is crucial for productivity. The essential tools include:

  • Cursor IDE, an AI-assisted code editor
  • ChatGPT reasoning models for deeper analysis, architectural insights, and code reasoning
  • Obsidian for organizing development notes and ideas
  • Draw.io for quick, clear architectural diagrams
  • Lightshot for quick screenshot annotations

Project Management and Collaboration

Effective collaboration is essential in modern data engineering projects. The standard toolkit includes:

  • Slack for internal team communication
  • Microsoft Teams for client interactions
  • Azure DevOps for task tracking and project management
  • Excel for structured data sharing and analysis presentation
  • Word for writing and sharing documentation, analysis, and technical reports with the team

Real-Time Processing Capabilities

Many modern data projects eventually move beyond batch processing into real-time or near-real-time data pipelines. In our current work, we use Spark Structured Streaming on Databricks coupled with Autoloader and Databricks DLT to handle multiple streaming data sources:

  • Websocket-based ingestion: A custom service monitors a live data feed via WebSocket APIs, storing JSON responses in blob storage.
  • Autoloader: This picks up the incoming data automatically and lands it in raw tables on Databricks for further transformation.
  • Streaming pipelines: We employ Databricks DLT to orchestrate continuous transformation, cleaning, and enrichment of the streaming data in our master table.

While Kafka remains a popular choice for event streaming, our project currently relies on custom ingestion services. In future phases, we may integrate Kafka into our DLT pipelines for enhanced real-time processing capabilities.

Learning and Staying Updated

Data engineering evolves rapidly. Besides hands-on experimentation, these resources offer valuable insights:

  • The comprehensive “data-engineer-handbook” on GitHub
  • Industry experts such as Zach Wilson, Benjamin Rogojan (Seattle Data Guy), and Michael Kahan from Kahan Data Solutions
  • The Modern Data Stack website
  • Start Data Engineering platform
  • The Databricks technical blog for insights on platform updates and best practices

Best Practices for Tool Selection

When choosing tools for a data engineering project, consider:

  • Project Requirements
    • Immediate business needs
    • Long-term scalability requirements
    • Real-time vs. batch processing needs
  • Team Expertise
    • Existing skill sets
    • Learning curve for new tools
    • Available training resources
  • Integration Capabilities
    • Compatibility with existing systems
    • API availability
    • Data format support

Future Considerations

The toolset should be flexible enough to accommodate:

  • Shifting from batch to real-time processing
  • Scaling data operations
  • Incorporating new data sources
  • Adapting to changing business requirements

Once the toolkit is stabilized, the next challenge is production deployment — for a structured walkthrough of that phase, see our step-by-step guide to mastering Databricks deployment.
 

Conclusion

The modern data engineering toolset is diverse and constantly evolving. Success lies not just in knowing these tools, but in understanding when and how to apply them effectively. Start with the core essentials, and gradually expand your toolkit based on project requirements and team capabilities.

For those beginning their data engineering journey, remember that mastery of these tools comes through consistent practice and hands-on project experience. Focus on building a strong foundation with core tools before expanding to more specialized solutions.


FAQ


When should I choose dbt vs SQLMesh for data transformations?

plus-icon minus-icon

Both are strong SQL-based transformation tools with important differences. dbt has the larger community, more mature ecosystem (dbt Cloud, dbt Semantic Layer, hundreds of packages), and is the industry default for analytics engineering. SQLMesh is newer and offers stronger features around virtual environments, column-level lineage, and unit testing — potentially better for complex pipelines with heavy testing requirements. Most teams start with dbt because of the ecosystem and hire dbt-experienced engineers more easily. SQLMesh is worth evaluating when you need advanced testing, care about zero-downtime deployments, or find dbt’s incremental model handling limiting.


When does it make sense to use dltHub versus Databricks-native ingestion?

plus-icon minus-icon

dltHub (data load tool) is a Python-based, open-source library that shines for rapid pipeline development, especially in early project phases — its declarative syntax and automatic schema inference make it fast to prototype ingestion from APIs, databases, and files. Databricks-native tools (Autoloader for files, Delta Live Tables for orchestrated pipelines) are more tightly integrated with the platform and better for production-grade streaming and CDC workloads. A common pattern: use dltHub for exploratory ingestion and one-off sources, then migrate stable pipelines to Autoloader + DLT for production.


Why use Autoloader instead of Kafka for streaming ingestion?

plus-icon minus-icon

Autoloader is Databricks’ file-based streaming ingestion — it monitors a storage location (S3, ADLS, GCS) and picks up new files as they arrive, with automatic schema inference and evolution. It’s simpler to operate than Kafka and often the right choice when data producers already drop files to cloud storage. Kafka excels for true event-streaming workloads where messages need low-latency delivery, exactly-once semantics across multiple consumers, or replay capabilities. Many modern architectures use both — Kafka for event backbone, then Autoloader on downstream file exports for batch enrichment. The article’s project uses Autoloader with custom WebSocket ingestion because that fits the current data sources; Kafka may be added later as event volumes grow.


What role does Unity Catalog play in a Databricks-based stack?

plus-icon minus-icon

Unity Catalog is Databricks’ unified governance layer for data, ML models, and AI assets. It provides fine-grained access control, audit logging, data lineage, and tag-based discovery across workspaces. For teams using the toolkit described in the article, Unity Catalog becomes essential once multiple people access the data — it enables role-based permissions, tracks lineage from ingestion through transformation to dashboards, and supports compliance requirements (GDPR, HIPAA, EU AI Act). It’s worth enabling from project day one rather than retrofitting after governance issues emerge.


How much does a Databricks-based data engineering stack typically cost?

plus-icon minus-icon

Costs vary significantly by workload and cluster configuration, but rough 2026 ranges: small development environments (single-user, all-purpose clusters, few hours daily) often run $500–$2,000 per month; production workloads with continuous jobs, multiple pipelines, and Delta Live Tables typically cost $5,000–$50,000 per month for mid-sized organizations. The largest cost drivers are usually interactive clusters left running (auto-terminate aggressively — 10–30 min idle), oversized clusters for jobs that don’t need them, and continuous DLT pipelines processing high volumes. Serverless SQL warehouses and job clusters (which terminate on completion) are the most cost-efficient options. Setting up cluster policies and Budget Alerts from day one prevents most cost surprises.


What's missing from a data engineering toolkit for production reliability?

plus-icon minus-icon

The article covers development-focused tools well, but production data engineering also needs data observability (Monte Carlo, Bigeye, Soda, Datafold — detect freshness, volume, schema, and quality issues before downstream consumers notice), data catalog and lineage (Atlan, DataHub, Collibra — beyond Unity Catalog for cross-platform lineage), pipeline testing (Great Expectations, Soda Core for data quality assertions; dbt tests for transformation logic), and CI/CD for data (Databricks Asset Bundles, GitHub Actions workflows for pipeline deployment). These become critical as the number of pipelines grows and data quality issues start propagating to dashboards and ML models.




Category:


People & Culture


Share this article:

Share on LinkedIn


LinkedIn

Share on X


X

Share on Facebook


Facebook