Your monitoring stops where Lakebase starts
Most Databricks pipeline monitoring tracks notebook tasks, Spark job completions, and DLT pipeline health. That coverage made sense when the lakehouse was the terminal layer — gold tables in Delta, maybe a SQL warehouse on top. Lakebase changes this topology. Now your gold-layer Delta tables feed synced tables that push data into a managed PostgreSQL instance, and downstream applications query that Postgres endpoint directly.
This means a successful Spark job no longer guarantees fresh data in production. The ETL notebook can complete in three minutes, but if the synced table pipeline stalls — due to throughput limits, schema drift, or a Lakebase compute scaling event — the application layer serves stale rows. Your Lakeflow job shows green. Your users see yesterday's numbers.
Synced tables operate in three modes: snapshot (full copy), triggered (incremental on a schedule), and continuous (streaming). Each mode has different failure characteristics. Snapshot syncs can timeout on large tables. Triggered syncs miss their schedule window silently if the prior run hasn't finished. Continuous syncs consume steady compute and can fall behind under write amplification without surfacing a hard error.
The Database Table Sync pipeline task lets you wire synced tables into Lakeflow Jobs DAGs, which helps with orchestration. But orchestration is not monitoring. A task dependency ensures ordering — it doesn't tell you whether the synced table delivered all rows, whether latency exceeded your SLA, or whether the Lakebase endpoint was reachable when your app needed it.
Scale-to-zero destroys session context without warning
Lakebase Autoscaling, the default project type since March 2026, supports scale-to-zero. When no queries hit the instance for a configurable idle period, compute shuts down entirely. The next connection triggers a cold start. This saves money. It also destroys state.
When compute scales to zero, all temporary tables are gone. Prepared statements disappear. Advisory locks release. NOTIFY/LISTEN channels close. If your application maintains a connection pool that expects persistent session state — many ORMs and middleware layers do — the next query after a cold start hits an unexpected clean slate. The connection object might not even raise an error; it reconnects transparently, but the session context it relied on no longer exists.
Postgres cumulative statistics also reset. If you're using pg_stat_user_tables or pg_stat_statements to track query performance or dead tuple ratios, those counters restart from zero after every scale-to-zero event. You lose the ability to trend query performance across idle periods. For teams that rely on Postgres-native monitoring queries in Grafana or Datadog, this creates gaps in time series that look like the database was healthy when it was actually off.
You can disable scale-to-zero. But that defeats one of Lakebase's cost advantages, and many teams won't realize the tradeoff until an incident exposes it. The operational pattern here is familiar: a cost optimization feature that silently degrades observability. The fix is to monitor from outside the database — to track data freshness at the consumption layer rather than relying on internal Postgres metrics that evaporate.
Database size reports zero while terabytes persist on disk
Lakebase's built-in metrics dashboard tracks RAM usage, CPU, active connections, row operations, deadlocks, replication delay, and database size. It's a reasonable set of vitals. But one behavior catches teams off guard: when compute is scaled to zero, the database size metric reports zero.
This is architecturally correct — Lakebase decouples compute from storage, inheriting Neon's design. Storage persists independently. But the metrics dashboard doesn't distinguish between 'compute is off, storage is fine' and 'database is empty.' If you've built alerts on database size dropping below a threshold, a routine scale-to-zero event trips the alarm. If you've suppressed those alarms because they're noisy, you've lost your ability to detect an actual data loss event.
The throughput numbers matter here too. Lakebase Provisioned writes synced table data at roughly 1,200 rows per second per compute unit for continuous and triggered modes, scaling up to 15,000 rows/sec/CU for snapshot writes. If your gold Delta table contains 50 million rows, a snapshot sync to a 4-CU instance takes close to 14 minutes at peak throughput. During that window, your application either serves partial data or stale data, depending on how the sync handles atomicity.
None of these timing characteristics appear in the Lakeflow Jobs UI. The job shows a green checkmark when the DAG task completes, not when the last row lands in Postgres. Teams that need to guarantee freshness SLAs — say, data no older than 15 minutes for a customer-facing dashboard — need an independent check that queries the Lakebase endpoint directly and compares timestamps against the source Delta table.
Unity Catalog integration hides a read-only constraint
Registering a Lakebase database in Unity Catalog creates a read-only mirror. Your Lakebase schemas, tables, and views appear in Catalog Explorer alongside Delta and Iceberg assets. You can query them with Databricks SQL and join transactional data with analytical data in the same statement. Governance policies — including attribute-level masking — propagate automatically to branches.
This is genuinely useful for ad-hoc analysis. It's also misleading for pipeline design. The Unity Catalog registration is read-only. You cannot write to Lakebase through the UC catalog path. If a data engineer sees a Lakebase table in Unity Catalog and builds a downstream notebook that tries to INSERT into it, the query fails. The error isn't always clear about why — it's a permissions failure that looks like a governance restriction rather than a fundamental architectural boundary.
For pipeline monitoring, the read-only constraint means you have two separate paths to track: the write path (synced tables pushing data from Delta into Postgres) and the read path (applications and UC queries reading from Postgres). A failure on the write path doesn't necessarily surface on the read path — old data is still there, still queryable, still passing schema validation. Only a freshness check catches it.
There's also a subtlety with branching. Lakebase supports copy-on-write database branches for testing and recovery, and masking policies follow the branch. But branch creation via API requires a spec object with explicit TTL or no_expiry — omitting it returns the error Expiration must be specified. If your CI/CD pipeline creates ephemeral Lakebase branches for integration testing, this API requirement has to be handled or the branch creation silently fails, and tests run against production data instead.
Synced tables fail differently than Spark jobs
A Spark notebook fails with a stack trace. A DLT pipeline fails with an expectation violation. Synced tables fail quietly. The distinction matters because your alerting logic probably pattern-matches on job failure events, and a synced table that falls behind its throughput target doesn't always register as a failure.
Consider the continuous sync mode. The pipeline reads change data from a Delta table and writes it to Lakebase. If the source table receives a burst of updates — say, a backfill job writes 10 million rows to your gold layer — the synced table pipeline tries to keep up. At 1,200 rows/sec/CU on a 4-CU instance, that's 4,800 rows/sec, meaning the sync takes about 35 minutes to catch up. During those 35 minutes, the Lakebase endpoint serves data that's progressively less stale but never current. The pipeline isn't failed. It's running. It's just behind.
Triggered syncs have a different problem. If a scheduled sync runs at 06:00 and the prior run from 00:00 hasn't finished, the behavior depends on pipeline configuration. In some cases the new run queues; in others it skips. Neither outcome produces a clear failure alert. Your 06:00 freshness SLA passes or fails based on race conditions you can't see in the Lakeflow UI.
MetricSign detects these lag patterns by tracking the delta between source table update timestamps and Lakebase endpoint query results. When a synced table falls behind its expected cadence, MetricSign surfaces a refresh_delayed signal with the measured lag duration — before your application team files a ticket about stale data.
The operational checklist before you go live
Lakebase is a strong addition to the Databricks platform. PostgreSQL compatibility means your application team can use familiar tooling — psql, pgAdmin, standard ORMs — without learning a new query dialect. Unity Catalog integration means governance extends to transactional data without a separate access control plane. Synced tables eliminate the need for custom ETL to push data from the lakehouse to an operational store.
But going live requires closing monitoring gaps that the platform doesn't close for you. First, decide whether scale-to-zero is acceptable for your workload. If your application expects persistent connections or session state, disable it. If you keep it, accept that Postgres-native monitoring metrics will have gaps and plan your observability accordingly.
Second, instrument freshness checks that compare source Delta table timestamps against Lakebase query results. Don't rely on job completion status as a proxy for data delivery. The write path and the read path are separate systems with separate failure modes.
Third, account for synced table throughput in your SLA calculations. If your gold table receives 50 million rows in a batch and your Lakebase instance runs 4 CUs, you need roughly 14 minutes for a snapshot sync at peak throughput. Add that to your ETL runtime when calculating end-to-end freshness guarantees.
Fourth, handle the branch creation API correctly in CI/CD. Always specify ttl, expire_time, or no_expiry in the spec object. Test the error path — a missing expiration field doesn't fail loudly.
Lakebase extends your data platform's capability. It also extends your blast radius. The teams that succeed with it will be the ones who monitor the full path, not just the pipeline that feeds it.