Skip to content

Commit 774de52

Browse files
[v2.0.2] Updates for README
1 parent 762eb78 commit 774de52

4 files changed

Lines changed: 33 additions & 3 deletions

File tree

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,29 @@ OnceOnly is a high-performance Python SDK that ensures **exactly-once execution*
66
It prevents duplicate actions (payments, emails, tool calls) in unstable environments like
77
AI agents, webhooks, retries, or background workers.
88

9+
910
Website: https://onceonly.tech/ai/
1011
Documentation: https://onceonly.tech/docs/
1112

1213
[![PyPI version](https://img.shields.io/pypi/v/onceonly-sdk.svg)](https://pypi.org/project/onceonly-sdk/)
1314
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
1415
---
1516

17+
## Why duplicates happen
18+
19+
Duplicate actions are common in modern systems because:
20+
- AI agents retry or re-plan tool calls
21+
- Webhooks are delivered more than once
22+
- Workers crash after side-effects
23+
- Distributed systems replay events
24+
25+
Without an idempotency layer, the same action may run multiple times.
26+
27+
OnceOnly is designed to guard side-effects in non-deterministic AI agent loops,
28+
where the same tool call may be executed multiple times.
29+
30+
---
31+
1632
## Features
1733

1834
- Sync + Async client (httpx-based)
@@ -22,6 +38,17 @@ Documentation: https://onceonly.tech/docs/
2238
- Native AI API (long-running jobs, local side-effects)
2339
- Optional AI / LangChain integrations
2440

41+
---
42+
43+
## FAQ
44+
45+
**Does this prevent duplicate payments or emails?**
46+
Yes. OnceOnly guarantees exactly-once execution for side-effects.
47+
48+
**Is this a retry library?**
49+
No. Retries still happen — OnceOnly ensures the action itself runs only once.
50+
51+
2552
---
2653

2754
## Installation

examples/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ This folder contains **small, runnable examples** demonstrating how to use the O
55
Examples are organized into two groups:
66

77
- `examples/general/` — core idempotency use cases (webhooks, workers, automations)
8-
- `examples/ai/` — AI agents, long-running jobs, and tool-calling integrations
8+
- `examples/ai/` — AI agents, long-running jobs, and tool-calling integrations.
9+
10+
These examples address common AI agent failure modes such as
11+
duplicate tool calls, retries after timeouts, and agent restarts.
912

1013
---
1114

onceonly/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.0.1"
1+
__version__ = "2.0.2"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "onceonly-sdk"
7-
version = "2.0.1"
7+
version = "2.0.2"
88
description = "Python SDK for OnceOnly idempotency API"
99
readme = "README.md"
1010
requires-python = ">=3.9"

0 commit comments

Comments
 (0)