{"id":899,"date":"2026-07-02T06:15:39","date_gmt":"2026-07-01T23:15:39","guid":{"rendered":"https:\/\/sumberlaba.com\/index.php\/2026\/07\/02\/what-is-data-engineering-a-comprehensive-guide-to-the-backbone-of-modern-data-science\/"},"modified":"2026-07-02T06:15:39","modified_gmt":"2026-07-01T23:15:39","slug":"what-is-data-engineering-a-comprehensive-guide-to-the-backbone-of-modern-data-science","status":"publish","type":"post","link":"https:\/\/sumberlaba.com\/index.php\/2026\/07\/02\/what-is-data-engineering-a-comprehensive-guide-to-the-backbone-of-modern-data-science\/","title":{"rendered":"What Is Data Engineering? A Comprehensive Guide to the Backbone of Modern Data Science"},"content":{"rendered":"<h1>What Is Data Engineering? A Comprehensive Guide to the Backbone of Modern Data Science<\/h1>\n<p>In today\u2019s data-driven world, every organization is swimming in a sea of raw information\u2014transaction logs, user clicks, sensor readings, social media feeds, and countless other sources. Yet raw data, in its native state, is often messy, incomplete, and scattered across dozens of systems. It is like crude oil: valuable, but unusable without refinement. This is where data engineering enters the picture. Data engineering is the discipline of designing, building, and maintaining the systems and pipelines that collect, transform, store, and make data accessible for analysis and machine learning. Without data engineers, data scientists would spend 80% of their time cleaning data instead of generating insights, and business intelligence teams would struggle to trust the numbers they see. In essence, data engineering is the unsung hero, the architectural backbone that turns chaos into order and enables every downstream data initiative.<\/p>\n<p>The role of a data engineer has evolved dramatically over the past decade. Initially, it was synonymous with ETL (Extract, Transform, Load) developers who wrote monolithic batch jobs to move data from operational databases into warehouses. Today, the scope has exploded to include real-time streaming, cloud-native architectures, containerized microservices, data lakehouses, and even aspects of data governance and MLOps. As companies scale their data operations, they realize that a solid data engineering foundation is not just nice to have\u2014it is a prerequisite for becoming a truly data-driven organization. This comprehensive tutorial will walk you through everything you need to know about data engineering: from its core concepts and lifecycle to practical steps for building your first pipeline, best practices adopted by top tech firms, and answers to the most common questions. Whether you are a student exploring career options, a developer looking to pivot into data, or a manager trying to understand the technical underpinnings of your data team, this guide will give you a deep, structured understanding of what data engineering truly is and why it matters more than ever.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/via.placeholder.com\/800x600\/4a90d9\/ffffff?text=what%20is%20data%20engineering\" alt=\"Article illustration\" style=\"display:block;margin:20px auto;max-width:100%;height:auto;border-radius:8px;\" \/><\/p>\n<h2>Understanding the Data Engineering Lifecycle<\/h2>\n<p>To truly grasp what data engineering is, you must first understand the end-to-end journey that data takes from its source to the point where it becomes valuable. This journey is often referred to as the data engineering lifecycle, a framework popularized by practitioners like Joe Reis and Matt Housley in their book &#8220;Fundamentals of Data Engineering.&#8221; The lifecycle consists of several key phases: generation, ingestion, storage, transformation, serving, and governance. Each phase has its own challenges, tools, and best practices, and a solid data engineer must be comfortable working across all of them.<\/p>\n<p>Generation refers to the origin of data\u2014relational databases, APIs, streaming platforms like Kafka, log files, IoT devices, and so on. The engineer must understand the schema, frequency, volume, and velocity of these sources. Ingestion is the process of pulling data from these sources into a central pipeline; it can be batch (e.g., nightly exports) or streaming (e.g., real-time clickstreams). Storage decisions come next: should you use a data lake like Amazon S3 or a data warehouse like Snowflake? Or the newer lakehouse architecture that combines both? Transformation is where the raw data gets cleaned, enriched, normalized, and aggregated\u2014typically using SQL, Python, or Spark. Serving means making the transformed data available to consumers: dashboards, reports, APIs, or machine learning models. Finally, governance wraps everything with security, access controls, data lineage, quality checks, and compliance (think GDPR or HIPAA). A data engineer\u2019s daily work involves continuously evaluating and orchestrating these phases to ensure reliable, scalable, and cost-effective data flow.<\/p>\n<h2>Step-by-Step Guide to Building a Data Engineering Pipeline<\/h2>\n<p>Now that you have a high-level picture, let\u2019s dive into a practical, step-by-step walkthrough of building a data engineering pipeline from scratch. This guide will assume a typical scenario: you need to ingest user activity logs from an e-commerce platform, transform them into a clean analytical table, and serve them to a business intelligence tool. The steps below are cumulative; each one builds on the previous, demonstrating the iterative nature of data engineering work.<\/p>\n<h3>Step 1: Define Requirements and Scope<\/h3>\n<p>Before writing a single line of code or provisioning any infrastructure, you must clarify what the pipeline needs to accomplish. Start by meeting with stakeholders: data analysts, product managers, and data scientists. Ask them: what questions do you need to answer? What is the required freshness of the data\u2014real-time, hourly, or daily? How much historical data is needed? What are the latency SLAs? For our e-commerce example, the stakeholders might want a daily dashboard showing total sales per product category, with a maximum delay of 24 hours from the time of transaction. They also need the ability to drill down to individual orders on any given day. Document these requirements in a simple specification. Additionally, define the data sources: a PostgreSQL database for orders, a flat-file export of product catalog, and a Kafka topic for real-time clickstream events. Knowing the source schemas, volumes (maybe 500k transactions per day), and any constraints (e.g., GDPR requirements to anonymize user IDs) is critical. This step saves enormous rework later because it forces you to think about the end product before you start building.<\/p>\n<h3>Step 2: Set Up the Data Ingestion Layer<\/h3>\n<p>With requirements in hand, you begin with ingestion. For the PostgreSQL source, you can use a change data capture (CDC) tool like Debezium or a simpler batch export using a cron job that dumps new records since a watermark. Given the daily freshness requirement, a batch approach is adequate: write a Python script that connects to the database, fetches all orders from the last 24 hours, and writes them as Parquet files to a staging area in Amazon S3. For the clickstream data from Kafka, you need a streaming consumer that writes each event into a different S3 prefix every 5 minutes (micro-batching). Use something like Apache Flink or a managed service like AWS Kinesis Firehose to reliably land the data. Ensure you handle failures\u2014if the write fails, the pipeline should retry or store messages in a dead-letter queue. Also, add basic schema validation: reject records that don\u2019t match the expected structure and alert the team. The output of this step is raw, immutable landing data in a cloud object store, partitioned by date and source. This pattern is often called the &#8220;data lake&#8221; stage.<\/p>\n<h3>Step 3: Transform Data Using ETL\/ELT<\/h3>\n<p>Raw data is rarely ready for analysis. Now you need to clean, deduplicate, join, and aggregate it. In modern data engineering, you have two main paradigms: ETL (transform before loading into the warehouse) and ELT (load first, transform inside the warehouse using its compute power). For this pipeline, we will use an ELT approach because we have a powerful cloud warehouse like Snowflake or BigQuery. You\u2019ll first load the raw Parquet files into staging tables using a simple COPY command or an orchestrated task. Then, write SQL transformations: create a join between the orders table and the product table to get product names, deduplicate by order_id (keeping the latest row based on an update timestamp), anonymize the user_id column to comply with privacy rules, and calculate derived columns like revenue (quantity * price). Finally, aggregate the data into a summary sales_by_category table. These transformations can be packaged as dbt (data build tool) models, which are version-controlled, tested, and documented. dbt even lets you run &#8220;ref&#8221; statements to ensure dependency ordering. Tip: always use incremental models for large tables to avoid reprocessing the entire history every time.<\/p>\n<h3>Step 4: Orchestrate the Pipeline with a Scheduler<\/h3>\n<p>Manual execution is not scalable. You need an orchestration tool to sequentially run the ingestion, loading, and transformation steps, while handling retries, dependencies, and monitoring. Apache Airflow is the industry-standard choice. Create a Directed Acyclic Graph (DAG) where each task is a step: for example, Task 1: run_ingestion_orders, Task 2: run_ingestion_clicks, Task 3: load_to_staging, Task 4: run_dbt_models, and a final Task 5: send_success_slack_notification. Airflow will execute these tasks on a schedule (e.g., daily at 2 AM) and retry failed tasks up to three times with exponential backoff. You can also set up sensors to wait for a file to arrive before proceeding. For real-time streaming pipelines, you might use a scheduler like Apache Flink\u2019s own job management or a cloud-native solution like AWS Step Functions. Orchestration is what transforms a script into a reliable production pipeline. It also allows you to backfill historical data easily by re-running the DAG with a specific execution date parameter.<\/p>\n<h3>Step 5: Implement Data Quality and Monitoring<\/h3>\n<p>Building the pipeline is only half the battle; you must ensure the data is accurate, complete, and timely. Data quality checks should be integrated at every stage. For example, after loading to staging, run a SQL query that counts the number of null columns in critical fields like order_id; if the null percentage exceeds 5%, the pipeline should fail and alert the on-call engineer. Similarly, check for row count anomalies\u2014if the number of orders today drops by 90% compared to the rolling 7-day average, something likely broke. Use dbt\u2019s built-in tests (unique, not_null, accepted_values) and custom singular tests to automate these checks. For monitoring, set up alerts in Airflow to send Slack messages on failure or delay. Additionally, use a service like Datadog or Grafana to visualize pipeline throughput, latency, and success rates. Finally, maintain a data catalog (like Amundsen or Apache Atlas) that documents table schemas, owners, freshness SLAs, and lineage. These practices prevent &#8220;blind faith&#8221; in the data and build trust among consumers. Data engineering is as much about reliability as it is about transformation.<\/p>\n<h3>Step 6: Optimize for Cost and Performance<\/h3>\n<p>Once the pipeline is running in production, you will inevitably face performance bottlenecks or rising cloud costs. This step involves iterative tuning. For ingestion, consider partitioning your S3 data at a finer granularity (e.g., hour-level for clickstreams) to speed up queries and reduce scan costs. In the warehouse, use clustering keys on frequently filtered columns and materialized views for aggregate tables. If your transformations are too slow, explore switching from SQL-based transforms to Spark or dbt\u2019s incremental strategies with more aggressive watermarking. Also, analyze your pipeline\u2019s cost: maybe you are running too many large Spark clusters that are underutilized. Implement auto-scaling and use spot instances where possible. Another common optimization is to compress data (Snappy or Zstd) and avoid storing duplicate copies. Performance tuning is a continuous cycle: monitor, identify slow stages, optimize, and re-deploy. Over time, a well-optimized pipeline can reduce costs by 30-50% while improving freshness.<\/p>\n<h2>Tips and Best Practices for Data Engineering Success<\/h2>\n<p>Data engineering is both an art and a science. Over years of practice, seasoned engineers have distilled several key principles that consistently lead to robust, scalable, and maintainable pipelines. Here are three essential tips that every aspiring data engineer should internalize:<\/p>\n<h3>1. Embrace Immutability and Idempotency<\/h3>\n<p>Always store raw ingested data in an immutable format\u2014never modify the original files. This allows you to replay transformations from scratch at any point, which is invaluable when you discover a bug in your transformation logic or need to backfill historical data. Immutability is typically achieved by writing to append-only storage like S3 with versioning enabled. Idempotency means that running the same pipeline twice should produce the same result, regardless of whether the first run partially succeeded. To achieve this, make your transformation steps stateless or use transactional loads (e.g., replace a table with a new snapshot). In dbt, this is done through the use of &#8220;full refresh&#8221; or incremental models with hard deletes. Together, immutability and idempotency give you the superpower of recovering from failures without manual intervention or data corruption.<\/p>\n<h3>2. Choose Simplicity Over Complexity<\/h3>\n<p>It is tempting to adopt every shiny new tool in the data ecosystem\u2014Kubernetes, Flink, Kafka Streams, Apache Iceberg, and so forth. However, each additional tool increases operational overhead, learning curve, and potential failure points. A best practice is to start with the simplest architecture that meets your current requirements and only add complexity when there is a clear need. For instance, if your data volume is under 100 GB and your batch frequency is daily, a simple cron job + PostgreSQL + a Python script may be perfectly adequate. Avoid building a real-time streaming pipeline for a use case that only needs hourly updates. Similarly, prefer managed cloud services (like AWS Glue, Google Dataflow) over self-hosted open-source solutions initially. The mantra is: &#8220;You are not Netflix.&#8221; Over-engineering is one of the biggest pitfalls in data engineering. As your scale grows, you can incrementally introduce more sophisticated tools like Airflow, Spark, or a data lakehouse.<\/p>\n<h3>3. Document Everything and Add Observability<\/h3>\n<p>Data pipelines often outlive their creators. Without documentation, the next engineer (or even future you) will struggle to understand why a certain transformation exists, where the data came from, or what the expected SLA is. Maintain a living document (e.g., a README in your dbt project) that describes each pipeline\u2019s purpose, source tables, output schemas, failure notifications, and recovery steps. Additionally, invest in observability: set up dashboards that track row counts per table, latency from source to target, and resource utilization. Use lineage tools to trace data from dashboards back to the raw source. When an anomaly occurs, observability lets you quickly isolate the issue\u2014was it a schema change upstream? A failed job? A network timeout? Having alerts that go beyond &#8220;pipeline failed&#8221; to &#8220;percentage of null order IDs exceeded threshold&#8221; is far more actionable. Remember, a data engineer\u2019s job is not done when the pipeline is built; it is done when the pipeline is reliably serving trustworthy data, and that requires ongoing maintenance and visibility.<\/p>\n<h2>Frequently Asked Questions About Data Engineering<\/h2>\n<p>In my years as a data engineering mentor, I\u2019ve encountered many recurring questions from newcomers and professionals alike. Here are the five most common ones, answered in depth to clarify any confusion.<\/p>\n<h3>Q1: What is the difference between data engineering and data science?<\/h3>\n<p>Data engineering focuses on the infrastructure and pipelines that collect, store, and prepare data, while data science uses that prepared data to build models, run statistical analyses, and generate insights. Think of data engineering as building the factory that produces clean, reliable ingredients, and data science as the chef who uses those ingredients to create a gourmet meal. Data engineers write code for ETL, orchestration, data modeling, and governance; data scientists write code for machine learning algorithms, exploratory analysis, and A\/B testing. They work closely together but have distinct skill sets. Without data engineering, data scientists spend most of their time cleaning data\u2014a problem that data engineers solve upfront.<\/p>\n<h3>Q2: What programming languages should I learn for data engineering?<\/h3>\n<p>The most important languages are Python and SQL. Python is used for scripting ingestion, transformations (with libraries like Pandas, PySpark, or Polars), orchestrating jobs, and interacting with APIs. SQL is the lingua franca for querying and transforming data inside warehouses, lakes, and databases. Additionally, knowledge of Java or Scala can be valuable if you work with big data frameworks like Apache Spark, Kafka, or Flink, as many of these tools are written in the JVM ecosystem. Bash and YAML are also essential for infrastructure and configuration. Some cloud-specific languages like AWS\u2019s CloudFormation (JSON\/YAML) or Terraform (HCL) are useful for provisioning infrastructure as code.<\/p>\n<h3>Q3: What is the difference between ETL and ELT?<\/h3>\n<p>ETL (Extract, Transform, Load) means you transform the data before loading it into the target system, often using a staging server or middleware. This was the traditional approach when data warehouses were expensive to run and had limited compute. ELT (Extract, Load, Transform) loads raw data first into the target system (typically a cloud data warehouse or data lake) and then performs transformations within that system using its scalable compute power. ELT is now the dominant paradigm because modern warehouses like Snowflake, BigQuery, and Redshift can handle massive transformations via SQL or Spark, making it faster to iterate and cheaper to store raw data. ELT also makes it easier to re-transform data as business rules change.<\/p>\n<h3>Q4: Do I need a degree to become a data engineer?<\/h3>\n<p>While a degree in computer science, information systems, or a related field can be helpful, it is not strictly necessary. Many successful data engineers come from other backgrounds\u2014software engineering, IT operations, analytics, or even physics\u2014and have self-taught skills through online courses, bootcamps, and hands-on projects. What matters most is a solid understanding of databases, SQL, Python, data modeling, basic cloud concepts, and the ability to problem-solve. Employers increasingly value demonstrated skills (e.g., a GitHub repo of pipelines, a portfolio of dbt projects, or certifications like AWS Data Analytics) over formal degrees. That said, a degree can open doors, especially for entry-level roles at large companies.<\/p>\n<h3>Q5: What are the typical career paths and salary expectations for data engineers?<\/h3>\n<p>Data engineering is a high-demand, well-compensated field. Entry-level roles (often called junior data engineer or data analyst with pipeline focus) typically earn between $70k and $100k USD in the United States. Mid-level engineers with 2-5 years of experience earn $100k-$150k, and senior or staff engineers can make $150k-$200k+, with principal or architect roles exceeding $250k, especially in tech hubs like San Francisco, New York, or Seattle. Career growth can lead to positions like Data Engineering Manager, Head of Data, or even Chief Data Officer. Alternatively, you can specialize in areas like streaming data, data platform architecture, or MLOps (combining data engineering with machine learning deployment). The field is still growing rapidly, so the outlook is excellent.<\/p>\n<h2>Comparison Tables for Tools and Concepts<\/h2>\n<p>Below are two reference tables that summarize common tools used in data engineering and compare the phases of the data lifecycle with their typical responsibilities.<\/p>\n<h3>Table 1: Popular Data Engineering Tools and Their Primary Use Cases<\/h3>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width:100%; border-collapse:collapse;\">\n<thead>\n<tr style=\"background-color:#f2f2f2;\">\n<th>Tool<\/th>\n<th>Category<\/th>\n<th>Primary Use<\/th>\n<th>Example Alternatives<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Apache Airflow<\/td>\n<td>Orchestration<\/td>\n<td>Schedule, monitor, and manage complex DAGs of data pipelines<\/td>\n<td>Prefect, Dagster, Luigi<\/td>\n<\/tr>\n<tr>\n<td>Apache Spark<\/td>\n<td>Distributed Processing<\/td>\n<td>Large-scale data transformation, cleansing, and ETL (batch and streaming)<\/td>\n<td>Apache Flink, Dask, Ray<\/td>\n<\/tr>\n<tr>\n<td>dbt (data build tool)<\/td>\n<td>Data Transformation<\/td>\n<td>SQL-based transformations, testing, and documentation inside data warehouses<\/td>\n<td>Dataform (now part of GCP), Coalesce<\/td>\n<\/tr>\n<tr>\n<td>Snowflake\/BigQuery<\/td>\n<td>Cloud Warehouse<\/td>\n<td>Scalable storage and analytical querying of structured and semi-structured data<\/td>\n<td>Redshift, Azure Synapse<\/td>\n<\/tr>\n<tr>\n<td>Apache Kafka<\/td>\n<td>Streaming Platform<\/td>\n<td>Ingest and distribute real-time events\/data streams<\/td>\n<td>Amazon Kinesis, Google Pub\/Sub, RabbitMQ<\/td>\n<\/tr>\n<tr>\n<td>Apache Iceberg<\/td>\n<td>Table Format<\/td>\n<td>Manage large analytical tables with ACID transactions and schema evolution<\/td>\n<td>Delta Lake, Hudi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Table 2: Data Lifecycle Phases and Key Responsibilities<\/h3>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width:100%; border-collapse:collapse;\">\n<thead>\n<tr style=\"background-color:#f2f2f2;\">\n<th>Phase<\/th>\n<th>Key Activities<\/th>\n<th>Common Challenges<\/th>\n<th>Example Metric to Monitor<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Generation<\/td>\n<td>Identifying sources, understanding schema changes, rate limiting<\/td>\n<td>Schema drift, missing data, API rate limits<\/td>\n<td>Source availability (up\/down)<\/td>\n<\/tr>\n<tr>\n<td>Ingestion<\/td>\n<td>Batch or stream extraction, file transfers, CDC (change data capture)<\/td>\n<td>Data volume spikes, latency, duplicate records<\/td>\n<td>Bytes ingested per minute<\/td>\n<\/tr>\n<tr>\n<td>Storage<\/td>\n<td>Choosing format (Parquet\/ORC\/JSON), partitioning, compression, lifecycle policies<\/td>\n<td>Cost optimization, access control, data immutability<\/td>\n<td>Total storage cost per TB<\/td>\n<\/tr>\n<tr>\n<td>Transformation<\/td>\n<td>Cleaning, joining, aggregating, feature engineering, data quality checks<\/td>\n<td>Performance at scale, unhandled nulls, business logic errors<\/td>\n<td>Rows processed per second<\/td>\n<\/tr>\n<tr>\n<td>Serving<\/td>\n<td>Creating views, materialized tables, APIs, dashboards, ML feature stores<\/td>\n<td>Latency to query, data freshness, access permissions<\/td>\n<td>P95 query latency<\/td>\n<\/tr>\n<tr>\n<td>Governance<\/td>\n<td>Data catalog, lineage, anonymization, compliance (GDPR\/CCPA), retention<\/td>\n<td>Cross-team coordination, maintaining metadata, tracking data usage<\/td>\n<td>Number of data quality alerts per week<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusion: The Future of Data Engineering<\/h2>\n<p>Data engineering is no longer a niche role tucked away in IT departments\u2014it has become a strategic discipline that directly influences a company\u2019s ability to compete and innovate. As we have seen in this guide, data engineering encompasses a wide range of skills: from understanding database internals and cloud architecture to writing production-grade Python and SQL, to designing fault-tolerant pipelines and monitoring their health. The demand for data engineers continues to grow exponentially as organizations of all sizes realize that data without proper infrastructure is just noise. Looking ahead, several trends will shape the evolution of data engineering: the rise of the data lakehouse (combining lake and warehouse capabilities), the integration of data engineering with machine learning (MLOps\/DataOps convergence), the adoption of declarative pipeline tools (like dbt and declarative orchestration), and the increasing importance of real-time data with low latency requirements. Moreover, the emergence of generative AI and large language models is already creating new demands for data engineers who can curate high-quality training datasets and build data pipelines for fine-tuning models. If you are considering a career in data engineering, now is an excellent time to dive in. The field rewards continuous learning, problem-solving, and a relentless focus on making data reliable, accessible, and secure. By mastering the principles and practices outlined in this tutorial, you will be well on your way to becoming a trusted data engineer who can build the pipelines that power the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What Is Data Engineering? A Comprehensive Guide to the Backbone of Modern Data Science In today\u2019s data-driven world, every organization is swimming in a sea of raw information\u2014transaction logs, user clicks, sensor readings, social media feeds, and countless other sources. Yet raw data, in its native state, is often messy, incomplete, and scattered across dozens &hellip; <\/p>\n","protected":false},"author":2716,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[],"tags":[],"class_list":["post-899","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/posts\/899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/users\/2716"}],"replies":[{"embeddable":true,"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/comments?post=899"}],"version-history":[{"count":0,"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/posts\/899\/revisions"}],"wp:attachment":[{"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/media?parent=899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/categories?post=899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sumberlaba.com\/index.php\/wp-json\/wp\/v2\/tags?post=899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}