Free guide · Modern data architecture
The 10 Modern Data Components
What each component does, where it fits, and which ones you actually need first.
The further you get into data engineering, the more you realize how many tools and components there are. That's exciting, but it also leads to a lot of complexity too early in a lot of architectures.
This guide breaks it down into the 10 key components I see work for the vast majority of teams. For each one, you'll see what it is, how it's used, why it helps and some example tools.
It's not about all the different tool options. What matters is understanding where each component fits in the bigger picture.
Start with the essentials. Make sure the first five are in place before moving on. Otherwise you're probably overcomplicating it too soon.
Part 1The essentials
The 5 components every data architecture needs.
▶ Watch · 13:42
The 10 Modern Data Components - Essentials (Part 1)
Component 1Storage & databases
A place to put your data.
At some point, you need to put data somewhere. Without it, there's really not much else you can do with your data.
Storage usually means file storage, like S3 buckets or blob storage. That's where you'll see a data lake, with raw data in all different formats. Databases are where most of us spend our time. I think of the database as the hub of all your information, where your data warehouse, marts and data modeling live.
| How it's used | A data lake for raw data, a data warehouse as the single source of truth, application back ends and backups. File storage is often split by temperature (hot, warm, cold) to manage access and cost. |
| Why it helps | Scalability, low cost and flexible file types for storage. Structure, performance, security and a well-understood query language (SQL) for databases. |
| Example tools | S3, Azure Blob, Google Cloud Storage · Snowflake, Databricks, BigQuery · MySQL, Postgres, SQL Server · MongoDB, Cassandra |
| Languages & file types | SQL, Python · CSV, XML, Parquet, JSON |
Component 2Ingestion
How the data gets there.
We have a place to store data. But how does it get there? To me, that's a foundational, incredibly important component.
You can batch load on a schedule or stream data in real time. For most of the clients I work with, batch loading is really all you need. Either way, it's still ingestion: moving data from a source system into storage.
| How it's used | Batch (scheduled) or streaming (real-time), using tools with pre-built connectors or custom scripts. Data lands in a data lake or a raw landing zone. |
| Why it helps | Brings data from different systems into your own environment, centralizes it, and sets the foundation for everything after. |
| Example tools | Fivetran, Stitch, Airbyte · Apache Kafka, Amazon Kinesis, Debezium · Custom Python scripts |
| Languages & file types | SQL, Python · CSV, XML, Parquet, JSON, YAML |
Component 3Transformation
Turning raw data into something useful.
Once the data is loaded, what do we do with it? Raw data by itself isn't that helpful most of the time. Transformation applies real-world rules and business logic, and maybe most importantly, gives your data organization and consistency.
This is where your data models live: a staging layer, a warehouse with facts and dimensions, and marts ready for reporting. The trend is toward code-based tools like dbt, because you can customize and automate a lot more. Drag-and-drop tools still have their place.
| How it's used | Usually runs on a schedule after the data is loaded (ELT), or during ingestion for streaming. Built with code-based tools, custom scripts and stored procedures, or drag-and-drop tools. |
| Why it helps | Applies business logic so the raw data makes sense, and gives the business organized, consistent data it can trust. |
| Example tools | dbt · Apache Spark · AWS Glue, Azure Data Factory, SSIS, Informatica |
| Languages & file types | SQL, Python, Jinja · CSV, XML, Parquet, JSON, YAML |
Component 4Reporting & analytics
Where the business puts data to use.
This is the part that gets all the glory. We do all this work behind the scenes, and this is what everybody sees. It's where the business gets insights, analyzes history, makes predictions and makes better decisions.
| How it's used | Visualization tools connect to your warehouse or marts. Some logic gets added in the tool itself. |
| Why it helps | Insight into business operations, better decision making, and a user-friendly layer over the complex engineering behind the scenes. |
| Example tools | Power BI, Looker, Tableau · Metabase, Superset · ML and AI tools |
| Languages & file types | SQL, Python, R |
Component 5Version control & CI/CD
Track every change and automate the workflow.
I group these together because you get the most value using them together. Version control tracks every change in a structured, transparent way. CI/CD automates tasks like testing and deployments.
Each developer works in their own branch and development area, separate from production. Changes move to a pre-production environment (QA, UAT or test), trigger automated checks, and get reviewed before they reach production. You can even run your refresh schedule from the same platform before you need a dedicated orchestrator.
| How it's used | A hosted Git platform connected to your project, with automation through the platform or an orchestration tool. |
| Why it helps | Easier to revert changes, more transparency and fewer conflicts. Faster to production, fewer manual tasks and a more iterative workflow. |
| Example tools | GitHub, GitLab, Bitbucket, Azure DevOps |
| Languages & file types | Bash/Zsh, Python · YAML |
If you just start with these five in place, you're in a great position to build and scale your architecture, or join any team and speak to what each component represents.
Part 2The advanced components
Add these once the essentials are in place.
▶ Watch · 12:45
The 10 Modern Data Components - Advanced (Part 2)
There are way more things you can add to an architecture. These five are the ones I see teams reach for next. Each one is worth knowing, but most teams don't need them on day one.
Component 6Orchestration
The control plane for your whole pipeline.
An orchestrator connects and triggers the different parts of your pipeline from a single tool. Without one, the process can get hard to manage, and you lose visibility into what's happening where.
This one is on the border of being an essential. I list it as advanced because you can handle a lot of orchestration early on with a simple scheduled job in your version control platform. Once ingestion, transformation and refreshes are all running at different times, an orchestrator is a great next step to put it all together.
| How it's used | A dedicated orchestration tool, a feature of a tool you already have (like your database server), or custom scripts. |
| Why it helps | Monitor and control the whole process at a high level from one place. |
| Example tools | Airflow, Prefect, Dagster, Luigi, Jenkins · Kubernetes, OpenShift · SQL Agent jobs, SSIS |
| Languages & file types | Python, Bash/Zsh · YAML |
Component 7Containers
Isolated environments without new machines.
A container is an isolated, virtual instance of an operating system that runs on top of your hardware. It gives you a clean, separate place to run applications and processes. Docker is by far the most common tool.
Some teams never use containers and are perfectly successful. Others rely on them heavily. Think of it as an infrastructure piece you can lean on when you need it.
| How it's used | Spin up a specific runtime for an automated process and shut it down when it's done, host open-source tools (even a database or BI tool), or give each developer their own environment. |
| Why it helps | Create exactly the environment you need without the overhead of new machines, and create or drop it easily for automated processes. |
| Example tools | Docker |
| Languages & file types | Bash/Zsh · Dockerfile, YAML |
Component 8Infrastructure as code (IaC)
Manage cloud resources with code, not clicks.
Instead of manually clicking through settings to create a database, network, virtual machine, users or permissions, you define it in code and deploy it.
The big benefit is transparency. In the past, one person with admin access might change permissions with no trail of what happened. With infrastructure in code, combined with version control and CI/CD, everyone can see exactly what's deployed. Like the other advanced components, add it if and only if you need it.
| How it's used | Automate deployments, updates and onboarding. Manage roles, permissions and configurations for cloud platforms. |
| Why it helps | Fewer manual steps, more transparency, easier maintenance and consistent environments. |
| Example tools | Terraform · Ansible · AWS CloudFormation, Azure Resource Manager, GCP Deployment Manager |
| Languages & file types | Bash/Zsh, Python · YAML, Terraform files |
Component 9Data quality
Add-on tools for accuracy, lineage and trust.
Data quality itself isn't less important. If anything, it should be one of the most important things. This component is about the separate data quality and governance tools you add once the foundations are in place, since there are other ways to manage quality before this point.
Some of it is already built into your tools. dbt has tests, for example. AI is also making documentation and testing easier, because it can understand the context of your code.
| How it's used | Automated tests at different steps of the pipeline, code linters, data contracts with data producers (like software engineers), documentation and lineage, and data catalogs. |
| Why it helps | More confidence in the data, errors caught before they reach end users, and more consistency in development. |
| Example tools | dbt tests, Great Expectations · SQLFluff, Pylint · Data catalogs: DataHub, Atlan, Castor, Collibra, Amundsen · Observability: Monte Carlo |
| Languages & file types | SQL, Python, Bash/Zsh · YAML |
Component 10Reverse ETL
Send clean data back to the business apps.
Reverse ETL sends data that's been through your pipeline back into your business applications. A simple example is populating custom fields in your CRM, like Salesforce, from your transformed data.
It lets business users stay in the tools they know while using the same business-approved logic as the data team. Otherwise they end up recreating the logic on their own, and now you have two versions of the same number. Most teams don't need this for a while, but it's a concept worth knowing.
| How it's used | Usually at the end of the pipeline, triggered after the warehouse updates or on its own schedule. |
| Why it helps | Keeps business users in familiar tools, avoids extra custom reports, and avoids conflicting data between apps. |
| Example tools | Fivetran (formerly Census), Hightouch, RudderStack |
| Languages & file types | SQL, Bash/Zsh · YAML |
All 10 at a glance
| Component | What it does | Group |
|---|---|---|
| 1. Storage & databases | Where your data lives | Essential |
| 2. Ingestion | Moves data from sources into storage | Essential |
| 3. Transformation | Turns raw data into clean, modeled data | Essential |
| 4. Reporting & analytics | Puts data in front of the business | Essential |
| 5. Version control & CI/CD | Tracks changes and automates the workflow | Essential |
| 6. Orchestration | Triggers and monitors the whole pipeline | Advanced |
| 7. Containers | Isolated environments for tools and processes | Advanced |
| 8. Infrastructure as code | Manages cloud resources in code | Advanced |
| 9. Data quality | Tests, lineage, catalogs and observability | Advanced |
| 10. Reverse ETL | Syncs clean data back to business apps | Advanced |
Common questions
What are the components of a modern data architecture?
The 10 key components are storage and databases, ingestion, transformation, reporting and analytics, version control and CI/CD, orchestration, containers, infrastructure as code, data quality and reverse ETL. The first five are the essentials.
Which components do I need to start?
The five essentials: storage and databases, ingestion, transformation, reporting and analytics, and version control with CI/CD. With those in place, you're in a great position to build and scale your architecture. Add the advanced components only when you need them.
Do I need an orchestration tool?
Not right away. A scheduled job in your version control platform can handle a lot at first. An orchestrator is worth it once several processes run at different times and you need one place to monitor and control them.
Do I need real-time streaming?
Most teams don't. For most of the companies I work with, batch loading on a schedule is all they need.
What's the difference between storage and a database?
Storage usually means file storage, like S3 or Azure Blob, where a data lake holds raw data in any format. A database adds structure, performance and security, and it's where your data warehouse and data models live. Some architectures skip file storage and load straight into a database.
What is reverse ETL?
Reverse ETL sends clean, transformed data from your warehouse back into business applications like a CRM, so business users can work in the tools they know with the same numbers as the data team.
Next stepThe Modern Data Checklist
Put the essentials into practice. The checklist turns them into 20 specific elements across design, ingestion, modeling and workflow, so you can check off what you already have and see what's missing.
Cheers,
Michael