ADR-0001: CFFI 대신 Rust/PyO3 선택
aerospike-py에서 C FFI(CFFI) 대신 Rust/PyO3를 바인딩 기술로 선택한 아키텍처 결정 기록.
aerospike-py에서 C FFI(CFFI) 대신 Rust/PyO3를 바인딩 기술로 선택한 아키텍처 결정 기록.
aerospike-py에서 레코드 결과를 dict 대신 NamedTuple로 반환하도록 선택한 아키텍처 결정 기록.
aerospike-py에서 동시 요청 과부하 방지를 위한 Semaphore 기반 backpressure를 도입한 아키텍처 결정 기록.
aerospike-py의 batch 연산 반환 타입을 BatchRecords NamedTuple로 통일하여 API 일관성과 per-record 에러 추적을 개선한 결정.
aerospike-py의 batch 작업 retry에 Full Jitter 패턴을 도입하여 thundering herd 문제를 방지하고 서버 부하를 분산하는 아키텍처 결정.
aerospike-py의 Tokio runtime worker thread 수를 CPU 코어 기반 heuristic으로 자동 결정하고, RuntimeMetrics를 Prometheus 메트릭으로 노출하는 아키텍처 결정.
aerospike-py의 모든 AerospikeError 하위 예외에 result_code 정수 속성을 추가하여, 문자열 매칭 대신 안정적인 정수 코드 기반 에러 분류를 지원하는 아키텍처 결정.
aerospike-py AsyncClient에서 동시 connect() 호출 시 발생하는 연결 누수를 AtomicBool guard와 상태 머신으로 방지하고, close() 후 재연결 시 전체 상태를 초기화하는 아키텍처 결정.
aerospike-py의 NumPy batch 연산에서 Owned Arrays를 기본 메모리 모델로 확정하고, API surface를 안정화하는 아키텍처 결정.
aerospike-py 아키텍처. Python API → PyO3 → Rust Core 계층과 K8s/Bare Metal 양쪽 Aerospike 클러스터 연결.
aerospike-py (Aerospike Python Rust binding async client) 릴리스 변경 이력
Removed Lua UDF support, upgraded aerospike-py, and decomposed monolithic components