feat: add DBOS skills for TypeScript, Python, and Go (#94)

Add three DBOS SDK skills with reference documentation for building
reliable, fault-tolerant applications with durable workflows.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Max dml
2026-02-17 14:26:51 -08:00
committed by GitHub
parent 7f0a6c63f6
commit 7e5abd504f
104 changed files with 6354 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
---
title: Use DBOS Decorators with Classes
impact: MEDIUM
impactDescription: Enables stateful workflow patterns with class instances
tags: classes, dbos_class, instance, oop
---
## Use DBOS Decorators with Classes
DBOS decorators work with class methods. Workflow classes must inherit from `DBOSConfiguredInstance`.
**Incorrect (missing class setup):**
```python
class MyService:
def __init__(self, url):
self.url = url
@DBOS.workflow() # Won't work without proper setup
def fetch_data(self):
return self.fetch()
```
**Correct (proper class setup):**
```python
from dbos import DBOS, DBOSConfiguredInstance
@DBOS.dbos_class()
class URLFetcher(DBOSConfiguredInstance):
def __init__(self, url: str):
self.url = url
# instance_name must be unique and passed to super()
super().__init__(instance_name=url)
@DBOS.workflow()
def fetch_workflow(self):
return self.fetch_url()
@DBOS.step()
def fetch_url(self):
return requests.get(self.url).text
# Instantiate BEFORE DBOS.launch()
example_fetcher = URLFetcher("https://example.com")
api_fetcher = URLFetcher("https://api.example.com")
if __name__ == "__main__":
DBOS.launch()
print(example_fetcher.fetch_workflow())
```
Requirements:
- Class must be decorated with `@DBOS.dbos_class()`
- Class must inherit from `DBOSConfiguredInstance`
- `instance_name` must be unique and passed to `super().__init__()`
- All instances must be created before `DBOS.launch()`
Steps can be added to any class without these requirements.
Reference: [Python Classes](https://docs.dbos.dev/python/tutorials/classes)