본문으로 건너뛰기
0
r/jeffnews HN 약 4분

LittleHorse 1.0 — 비즈니스 로직을 코드로 표현하는 마이크로서비스 오케스트레이션 엔진

backend

요약

Apache Kafka 기반의 고성능 워크플로우 오케스트레이션 엔진 LittleHorse가 1.0을 출시함. 비즈니스 프로세스를 코드로 직접 표현하는 'Business-as-Code' 방식으로 마이크로서비스 간 조율, 재시도, 타임아웃, 분산 추적 등을 엔진 레벨에서 처리해줌.

기사 전체 정리

LittleHorse 1.0 — 비즈니스 로직을 코드로, 마이크로서비스 오케스트레이션 엔진

Apache Kafka 위에 올라간 고성능 워크플로우 엔진이 1.0을 찍었음. "Business-as-Code"라는 개념으로 비즈니스 프로세스를 코드로 직접 표현하는 방식을 밀고 있음.

  • 마이크로서비스 연결의 복잡함을 없애줌 — RPC 호출이나 메시지 큐로 서비스들 수동으로 엮는 작업, 재시도 로직, 타임아웃, 데드레터 큐 같은 것들을 엔진이 대신 처리해줌

  • 코드가 곧 비즈니스 프로세스 — WfSpec이라고 부르는 워크플로우 명세를 코드로 작성하면, 실제 비즈니스 흐름과 거의 1:1로 매핑됨. 예시에서 KYC(고객 신원 확인) 프로세스를 Java 코드로 표현하는데 꽤 직관적임

  • 내장된 기능들이 실용적임 — 변수에 .searchable(), .masked() 같은 속성 지정 가능, 이벤트 대기(waitForEvent)에 타임아웃 + 상관 ID 설정, 에러 핸들링, 조건 분기까지 한 곳에서 처리됨

  • Apache Kafka 기반 — Kafka와 Kafka Streams 위에 구축돼 있어서 기존 Kafka 생태계와 궁합이 좋음. 워크플로우 업데이트를 Kafka 토픽으로 실시간 수신하는 것도 지원

  • 멀티 언어 지원 — Java, Go, Python, C#, JS SDK 제공. 다만 JS SDK는 아직 WfSpec 생성을 지원 안 해서 lhctl로 우회해야 함

  • 시작이 간단함 — Docker 이미지 하나(lh-standalone)로 서버 + 대시보드 바로 띄울 수 있고, brew install lhctl로 CLI 설치, 120초 안에 첫 워크플로우 실행 가능하다고 함

  • 라이선스는 GNU AGPL v3 — 서버와 대시보드 코드 전부 AGPL. 상업적 활용 시 주의 필요함

  • 1.0 이후 Semantic Versioning 적용 — 이전까지는 버전 보장이 없었는데 이제부터는 공식 릴리즈 일정과 하위 호환 정책이 생김


Temporal이나 Conductor 같은 워크플로우 엔진과 비슷한 포지션인데, Kafka 네이티브라는 점이 차별점임. 이미 Kafka 인프라를 쓰고 있는 팀이라면 진입 장벽이 낮을 것 같음.

핵심 포인트

  • Business-as-Code 접근 — 워크플로우 명세(WfSpec)를 코드로 작성해 비즈니스 프로세스와 1:1 매핑
  • Apache Kafka / Kafka Streams 위에 구축, 기존 Kafka 생태계와 연동 용이
  • 재시도, 타임아웃, 이벤트 대기, 에러 핸들링, 조건 분기 등 내장 지원
  • Java, Go, Python, C#, JS 멀티 언어 SDK 제공
  • Docker 이미지 하나로 빠른 시작, 1.0부터 Semantic Versioning 적용
  • 라이선스 GNU AGPL v3 — 상업적 활용 시 주의 필요

인사이트

Temporal, Conductor 등과 같은 워크플로우 엔진 포지션이지만 Kafka 네이티브라는 점이 핵심 차별점. Kafka 인프라를 이미 운영 중인 팀에게 진입 장벽이 낮고, AGPL 라이선스라 엔터프라이즈 도입 시 라이선스 검토가 필요함.

댓글

댓글

댓글을 불러오는 중...

backend

Redis 8.0 출시 — I/O 스레딩 갈아엎고 처리량 3배, 2.1M ops/sec 달성

Redis 8.0이 I/O 스레딩 모델을 완전히 재설계해서 16코어 기준 2.1M ops/sec를 달성함 (7.4 대비 3배). Hash field expiration, Vector search HNSW, Client-side caching v2, Redis Functions 2.0 async 실행 등 굵직한 기능이 추가되고, jemalloc 통합으로 메모리 fragmentation도 25% 줄어듦.

backend

칩셋 레이턴시를 측정해봤더니 — 쓸모는 없지만 재밌는 실험

Vulkan GPU 벤치마크로 여러 세대 마더보드 칩셋의 PCIe 레이턴시를 측정한 실험. CPU 직결 대비 칩셋 경유 시 수백 ns 레이턴시가 추가되며, 의외로 2012년 Skylake Z170이 가장 낮은 추가 레이턴시를 보임.

backend

ForgeKV — Rust로 만든 멀티코어 Redis 대체제

Rust로 만든 Redis 드롭인 대체제. 64-샤드 잠금 아키텍처로 멀티코어 스케일링 지원. 2코어 환경에서 Redis 7 대비 41% 빠른 SET 처리량(158K ops/s). 고동시성에서는 약점 있음. Source-available 라이선스.

backend

AI 바이브 코딩에 Go를 쓰는 이유 — Rust도 Python도 아닌

AI가 코드의 90%를 쓰는 바이브 코딩 시대에 Go가 최적의 언어라는 주장. Python은 안전장치가 없고, Rust는 언어 자체의 문제까지 인간에게 떠넘기지만, Go는 중요한 것만 잡고 비켜준다는 논리. 실제로 한 세션에 3도메인 풀스택 블로그를 7커밋으로 완성한 사례 제시.

backend

rsloop: Rust로 만든 Python asyncio 이벤트 루프 (io_uring 지원)

PyO3 기반으로 Python asyncio 이벤트 루프를 Rust로 재구현한 rsloop. Linux에서 compio + io_uring을 사용하고, asyncio 호환 표면이 넓어 drop-in 교체가 가능하다. uvloop과는 다른 접근으로 이벤트 루프 성능을 노리는 프로젝트.