Skip to content

Commit 65f7efb

Browse files
authored
Merge pull request #7 from open-metadata/fix_build
Add Clarity for Real-time Metadata Ingestion Patterns
2 parents 81b720b + 8cd2ffa commit 65f7efb

1 file changed

Lines changed: 87 additions & 5 deletions

File tree

docs/operations/overview.md

Lines changed: 87 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,12 +242,26 @@ Run automated quality tests:
242242

243243
## Best Practices
244244

245-
### 1. Schedule Appropriately
246-
Choose ingestion frequency based on data volatility:
247-
- **Real-time**: Streaming data, critical tables
245+
### 1. Choose the Right Ingestion Pattern
246+
Select the appropriate pattern based on your needs:
247+
248+
**Push-based (Real-time APIs)**:
249+
- Real-time application metadata
250+
- Event-driven updates
251+
- Immediate lineage tracking
252+
- Live quality metrics
253+
254+
**Pull-based (Scheduled)**:
255+
- Batch metadata discovery
256+
- Periodic synchronization
257+
- Historical data profiling
258+
- Low-frequency updates
259+
260+
**Schedule Frequency** (for pull-based):
248261
- **Hourly**: Frequently changing data
249262
- **Daily**: Most production tables
250263
- **Weekly**: Static reference data
264+
- **On-demand**: Ad-hoc discovery
251265

252266
### 2. Filter Wisely
253267
Use filters to avoid ingesting unnecessary metadata:
@@ -321,6 +335,20 @@ Configure alerts for operational issues:
321335

322336
## Integration Patterns
323337

338+
OpenMetadata supports multiple ingestion patterns to meet different needs:
339+
340+
### Ingestion Pattern Comparison
341+
342+
| Feature | Pull-based Ingestion | Push-based Ingestion (APIs) | Webhooks (Notifications) |
343+
|---------|---------------------|----------------------------|-------------------------|
344+
| **Direction** | OpenMetadata pulls from source | Source pushes to OpenMetadata | OpenMetadata pushes to destination |
345+
| **Timing** | Scheduled (batch) | Real-time (immediate) | Real-time (immediate) |
346+
| **Latency** | Minutes to hours | Milliseconds | Milliseconds |
347+
| **Use Case** | Metadata discovery | Application-driven updates | External system notifications |
348+
| **Complexity** | Higher (connector needed) | Lower (standard REST API) | Lower (standard webhooks) |
349+
| **Infrastructure** | Requires scheduler | No additional infrastructure | No additional infrastructure |
350+
| **Examples** | Database schema discovery | Lineage from Spark jobs | Slack alerts on schema changes |
351+
324352
### Pull-based Ingestion
325353
Scheduled extraction from source systems:
326354

@@ -339,8 +367,56 @@ graph LR
339367
style E fill:#667eea,color:#fff
340368
```
341369

342-
### Push-based Notifications
343-
Real-time event delivery:
370+
**Use Cases**:
371+
- Batch metadata discovery
372+
- Scheduled profiling and quality checks
373+
- Historical data synchronization
374+
- Low-frequency updates
375+
376+
### Push-based Ingestion (Real-time via APIs)
377+
Real-time metadata updates through REST APIs:
378+
379+
```mermaid
380+
graph LR
381+
A[Application/Service] --> B[OpenMetadata REST API]
382+
B --> C[Metadata Store]
383+
C --> D[Event Stream]
384+
D --> E[Real-time Updates]
385+
386+
style A fill:#764ba2,color:#fff
387+
style B fill:#4facfe,color:#fff,stroke:#4c51bf,stroke-width:3px
388+
style C fill:#667eea,color:#fff
389+
style D fill:#f093fb,color:#333
390+
style E fill:#00f2fe,color:#333
391+
```
392+
393+
**Use Cases**:
394+
- Real-time metadata updates from applications
395+
- Event-driven metadata synchronization
396+
- Immediate lineage tracking
397+
- Live data quality reporting
398+
- Dynamic schema registration
399+
400+
**Why APIs are the Standard for Real-time**:
401+
402+
OpenMetadata uses REST APIs for push-based, real-time ingestion - the same approach that powers the entire internet. Just as Stripe processes millions of real-time payments and Twilio handles real-time communications through APIs, OpenMetadata delivers real-time metadata updates without requiring heavyweight message queues.
403+
404+
**Key Advantages**:
405+
406+
- **Simplicity**: Standard HTTP/REST - no additional infrastructure required
407+
- **Universal**: Works with any programming language or platform
408+
- **Reliable**: Battle-tested pattern used by Stripe, Twilio, GitHub, and thousands of other services
409+
- **Scalable**: Modern API gateways handle millions of requests per second
410+
- **Developer-friendly**: Easy to integrate, test, and debug
411+
- **Secure**: Standard authentication and encryption (OAuth, JWT, TLS)
412+
413+
!!! note "Real-time Without Kafka"
414+
While some vendors claim you need Kafka for "real-time" capabilities, the reality is different. The world's most critical real-time systems - payment processing, communication platforms, ride-sharing, and financial services - all run on REST APIs. OpenMetadata follows this proven, simpler approach.
415+
416+
**Learn more**: [Why OpenMetadata is the Right Choice for You](https://blog.open-metadata.org/why-openmetadata-is-the-right-choice-for-you-59e329163cac)
417+
418+
### Push-based Notifications (Webhooks)
419+
Real-time event delivery to external systems:
344420

345421
```mermaid
346422
graph LR
@@ -354,6 +430,12 @@ graph LR
354430
style D fill:#764ba2,color:#fff
355431
```
356432

433+
**Use Cases**:
434+
- Notify external systems of metadata changes
435+
- Trigger downstream workflows
436+
- Send alerts to Slack, email, or other tools
437+
- Maintain synchronization with other platforms
438+
357439
## Related Entities
358440

359441
- **[Ingestion Pipeline](./ingestion-pipeline.md)**: Automated metadata ingestion workflows

0 commit comments

Comments
 (0)