MetaCell / MetaCell/cloud-harness
Distributed transactions api
- Dominant language
- Python
- Stars
- 19
- Forks
- 5
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 3
Description
It would be nice to implement a simple api for the backend developer that allows to control distributed transactions.
The ideal implementation is to implement the [saga pattern](https://microservices.io/patterns/data/saga.html) and at the same time expose a familiar ACID transaction api to the user.
The kafka event queue would be the ideal place to handle transaction information.
Following a raw proposal:
```python
from cloudharness.transactions import saga
@saga("mysaga", expected=["step1", "step2"])
def my_transactional_function(arg1, arg2): #arguments will go to the mysaga topic
...
return result # result will go the mysaga topic. The function will go on error id step1 and step2 messages are not received
```
Before implementing anything we need to refine the proposal taking into account also asynchronous ways to check sagas and different use cases.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by refining the proposal around the saga pattern, the Kafka event queue, asynchronous saga checks, and the stated use cases before identifying an implementation entry point. Done would mean an agreed API and design that addresses the transaction and asynchronous behavior requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kafka, python
- Domain
- api, backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100