Dapr
A portable, event-driven runtime for building resilient microservice applications
Temporal
A microservices orchestration platform for scalable and reliable workflows
How They Work Together
Infrastructure Abstraction with Dapr
Dapr provides building blocks that abstract the underlying infrastructure, making it easy to work with state stores, pub/sub messaging, service invocation, and more without worrying about implementation details.
Workflow Orchestration with Temporal
Temporal schedules and executes workflows in a fault-tolerant way, handling retries, timeouts, and distributed coordination automatically.
Package Structure
Theapplication_sdk package is organized into focused modules with clear separation of concerns:
Core Application Components
application/
application/
Core application functionality and base classes for building your applications.
worker.py
worker.py
Manages Temporal workflow workers and their execution. Workers are responsible for picking up and executing workflows and activities.
Infrastructure and Clients
clients/
clients/
Client implementations for various services including SQL databases, object stores, and external APIs.
common/
common/
Shared utilities and common functionality used across the SDK.
Workflow and Activity Management
workflows/
workflows/
Workflow definitions and implementations. Workflows orchestrate the overall business logic.
activities/
activities/
Activity definitions and implementations. Activities are the individual units of work executed by workflows.
handlers/
handlers/
Event and request handlers for processing various types of requests.
Data Processing and Transformation
transformers/
transformers/
Data transformation utilities for converting between different formats (e.g., raw metadata to Atlas entities).
inputs/
inputs/
Input processing and validation to ensure data quality before processing.
outputs/
outputs/
Output formatting and handling for preparing results for storage or transmission.
Documentation and Testing
docgen/
docgen/
Documentation generation tools for creating API documentation.
test_utils/
test_utils/
Testing utilities and helpers for writing comprehensive tests.
Key Capabilities
The SDK provides comprehensive features for building production-ready applications:Workflow Management
Orchestrate complex business logic through Temporal workflows with automatic retries and fault tolerance.
Activity Execution
Execute and coordinate individual units of work with proper error handling and monitoring.
Service Clients
Ready-to-use client implementations for databases, object stores, and external services.
Data Transformation
Transform data between formats with built-in transformers and the ability to create custom ones.
Documentation Generation
Automatically generate API documentation for your applications.
Testing Utilities
Comprehensive testing framework for end-to-end and unit tests.
Architecture Design Principles
The SDK follows a modular design with several key principles:Separation of Concerns
Core application logic is isolated from infrastructure concerns, making it easier to test and maintain.
Modular Components
Workflow and activity management are separated, allowing you to reuse activities across different workflows.
Centralized Utilities
Common functionality is centralized in the
common module, reducing duplication.Benefits of This Design
Easy Extension
Add new functionality without modifying existing code.
Clear Boundaries
Well-defined module responsibilities make the codebase easier to navigate.
Testable
Modular design enables focused unit tests and integration tests.
Flexible Workflows
Compose workflows from reusable activities and handlers.
Efficient Processing
Optimized data transformation pipeline for handling large datasets.
Scalable
Leverage Temporal’s scalability for handling high workloads.
The SDK is designed for building scalable, reliable applications on the Atlan Platform, combining Dapr’s infrastructure abstraction with Temporal’s workflow orchestration.
Next Steps
Build SQL Applications
Learn how to build applications that extract metadata from SQL databases.
Testing Framework
Explore the testing framework for writing comprehensive tests.
Best Practices
Follow best practices for scalability, reliability, and performance.
Secret Stores
Learn how to securely manage credentials with secret stores.