Repolode
ergo-services

ergo-services/ergo

Erlang/OTP에서 영감을 얻은 Go 액터 모델 프레임워크로, 감독 기능과 네트워크 투명성을 갖춘 분산 시스템을 구축합니다.

스타
4,681
포크
191
열린 이슈
0
마지막 커밋
13일 전

어떤 프로젝트인가요?

Ergo는 프로그램을 서로 격리된 액터(프로세스)로 구성하고, 이들이 메시지로만 통신하도록 하는 Go 프레임워크입니다. 각 액터는 메시지를 한 번에 하나씩 처리하므로 공유 상태에 뮤텍스를 사용할 필요가 없습니다. 액터는 설정 가능한 전략에 따라 실패한 자식 액터를 재시작하는 감독 트리로 구성되며, 클러스터의 로컬 노드에 있든 다른 노드에 있든 같은 방식으로 액터에 주소를 지정할 수 있습니다.

프레임워크에는 감독자, 워커 풀, 라우터, 메타 프로세스가 포함됩니다. 메타 프로세스는 블로킹 TCP, UDP, 포트, 웹 I/O를 감싸 일반적인 액터 메시지 처리가 막히지 않게 합니다. 클러스터링 기능으로는 내장 또는 외부 레지스트리를 통한 서비스 검색, 분산 발행/구독 이벤트, 원격 프로세스 생성, Erlang distribution protocol을 통한 Erlang 및 Elixir 노드와의 상호 운용이 있습니다. 외부 의존성이 없으며 MIT 라이선스를 따릅니다.

함께 제공되는 Observer 애플리케이션은 실행 중인 노드의 프로세스, 네트워크, 이벤트, 로그를 살펴볼 수 있는 웹 UI를 제공하며, AI 어시스턴트가 클러스터를 조회할 수 있도록 MCP 엔드포인트도 제공합니다. ergo라는 CLI로 애플리케이션, 액터, 메시지 타입의 프로젝트 스캐폴딩을 생성할 수 있습니다.

핵심 기능

  • 01메시지를 순차적으로 처리하며 메일박스마다 우선순위 큐 4개를 사용하는 격리된 액터.
  • 02One For One, All For One, Rest For One, Simple One For One 전략을 지원하는 감독 트리.
  • 03EDF 바이너리 직렬화를 사용해 로컬 및 원격 액터에 동일한 메시징 API 제공.
  • 04etcd 같은 내장 또는 외부 레지스트리를 통한 서비스 검색.
  • 05분산 발행/구독 이벤트 및 원격 프로세스 생성.
  • 06Erlang distribution protocol을 통한 Erlang 및 Elixir 노드와의 상호 운용.
  • 07Observer 웹 UI 및 OpenTelemetry 호환 분산 추적.

활용 사례

  • 각 클라이언트 연결을 주소 지정 가능한 액터로 처리하는 실시간 백엔드 구축.
  • 장치마다 액터를 하나씩 두어 대규모 IoT 장치 관리.
  • 장애 격리와 감독이 필요한 멀티 에이전트 AI 시스템 조율.
  • Erlang 또는 Elixir 노드와 함께 이기종 클러스터에서 Go 서비스 실행.

빠른 시작

  1. 1

    README 예제와 같이 프레임워크를 가져오고 Go 코드에서 노드를 시작합니다

  2. 2

    노드에서 액터를 생성하고 메시지를 보냅니다

토픽

자주 묻는 질문

ergo은(는) 무엇인가요?
Erlang/OTP에서 영감을 얻은 Go 액터 모델 프레임워크로, 감독 기능과 네트워크 투명성을 갖춘 분산 시스템을 구축합니다. Ergo는 프로그램을 서로 격리된 액터(프로세스)로 구성하고, 이들이 메시지로만 통신하도록 하는 Go 프레임워크입니다. 각 액터는 메시지를 한 번에 하나씩 처리하므로 공유 상태에 뮤텍스를 사용할 필요가 없습니다. 액터는 설정 가능한 전략에 따라 실패한 자식 액터를 재시작하는 감독 트리로 구성되며, 클러스터의 로컬 노드에 있든 다른 노드에 있든 같은 방식으로 액터에 주소를 지정할 수 있습니다.
ergo은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
ergo은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
ergo은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. ergo의 마지막 커밋은 2026년 10월 9일입니다.
ergo은(는) 어디에 사용할 수 있나요?
각 클라이언트 연결을 주소 지정 가능한 액터로 처리하는 실시간 백엔드 구축. 장치마다 액터를 하나씩 두어 대규모 IoT 장치 관리. 장애 격리와 감독이 필요한 멀티 에이전트 AI 시스템 조율. Erlang 또는 Elixir 노드와 함께 이기종 클러스터에서 Go 서비스 실행.
ergo는 어떻게 설치하나요?
README 예제와 같이 프레임워크를 가져오고 Go 코드에서 노드를 시작합니다 노드에서 액터를 생성하고 메시지를 보냅니다
ergo은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ergo-services/ergo

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트