▲GN⁺ 2023-12-18 | parent | ★ favorite | on: 관계형 데이터에서 이벤트로의 전환(event-driven.io)Hacker News 의견 PostgreSQL 및 FOSS 리포팅 도구 사용 권장 애플리케이션에서 PostgreSQL을 이미 사용 중이라면, 이벤트 데이터를 PostgreSQL에 저장하고 FOSS 리포팅 도구(Apache Superset, Metabase 등)를 사용할 것을 권장함. 데이터가 약 2TB에 도달할 때까지 PostgreSQL을 사용하고, 그 이후에는 온라인으로 2TB의 데이터가 필요한지, 아니면 일별/시간별 요약만 필요한지 결정함. 한 클라이언트 사례에서는 10TB 이상의 데이터와 초당 1500개의 이벤트를 처리하고 있으며, 상세 데이터는 2일간 온라인에 유지하고 나머지는 요약하여 S3로 이동시켜 Athena SQL을 통해 쿼리할 수 있음. AWS RDS 멀티-AZ를 사용하여 자동 장애 전환을 지원하고, 한 명의 엔지니어가 월 5시간 미만으로 모든 것을 유지 관리함. PostgreSQL은 데이터를 한 곳에 보관하고, 배우고, 관리하며, 확장할 수 있는 단일 시스템을 제공함. 비테크니컬 인력도 Metabase나 Preset과 같은 시스템에서 쉽게 차트를 만들 수 있음. PostgreSQL은 매년 발전하고 있으며, 필요한 경우 PostgreSQL과 호환되는 시스템(Aurora, TimescaleDB, CitusDB 등)을 통해 추가적인 확장이 가능함. 이벤트 주도 아키텍처의 적절한 사용 시기 고객이 특정 행동을 하고 응답을 기대하는 경우는 이벤트 주도가 아닌 요청/응답 패턴임. 이벤트 주도는 예상치 못한 상황에서 발생하는 경우를 의미함. 예를 들어, GitHub에 코드를 푸시하면 빌드가 트리거되는 것과 같은 상황임. 이벤트 소싱에 대한 회의적인 경험 공유 한 팀이 이벤트 소싱을 고려했으나, 명확한 이점이 보이지 않고 새로운 것을 시도하는 위험성 때문에 결국 사용하지 않기로 결정함. 학습 기회를 놓친 것에 대한 후회는 없으며, 필요하지 않은 상황에서 복잡한 문제에 뛰어들지 않음을 긍정적으로 평가함. 도메인 이벤트 모델링의 유용성 도메인 이벤트 모델링은 문제를 해결하려는 도메인 전문가들과 소통하는 데 유용함. 오랜 기간의 상태 머신에 대한 감사 추적을 제공하는 시스템을 구현할 때는 Temporal.io/durable functions와 같은 도구를 사용하는 것이 더 나음. 이러한 도구는 내부적으로 이벤트 소싱을 사용하며, 중복 제거 및 멱등성을 고려하여 코드를 작성하도록 강제함. 이벤트 소싱의 구현에 대한 질문 이벤트 스트림에서 현재 상태를 효율적으로 재구성하는 방법과 데이터베이스에서 이벤트 스트림을 모델링하는 방법에 대한 설명이 부족함. 상향식 대 하향식, 맞춤형 대 범용 하향식 접근법은 비즈니스 도메인에서 시작하여 사용 가능한 기술, 도구, 벤더에 맞게 구현을 매핑함. 상향식 접근법은 사용 가능한 기술, 도구, 벤더에서 시작하여 작동하는 솔루션을 조합함. 맞춤형 접근법은 DDD, CQRS/ES, Sagas, TBUI, GraphQL, 대수적 데이터 타입 등을 포함함. 범용 접근법은 RDBMS, CRUD, REST, ACID 트랜잭션, CDC, 범용 관리 UI, 노코드/로우코드, 제한된/범용 타입 등을 포함함. 이벤트 기반 아키텍처에 대한 지지와 비판 이벤트 기반 아키텍처에 대한 지지는 있으나, 해당 아티클이 주장을 명확히 전달하는 데 실패함. 데이터 관계와 비즈니스 행동 사이의 차이점에 초점을 맞추면, 운영 관계형 데이터 저장소에서 벗어나는 것이 더 명확해짐. 이벤트 소싱과 관계성의 필요성 이벤트 소싱의 많은 장점에도 불구하고, 여전히 관계성이 필요함. 관계성이 애플리케이션 계층 코드에 모두 암시되어 있다면, 이는 받아들일 수 없음. 관계성을 쿼리하거나 관계 뷰를 최신 상태로 유지하는 방법이 필요함. 관계형 데이터의 지지 복잡성을 피하고 전통적인 관계형 데이터에 충실하기로 결정함. 이벤트 주도 설계에 대한 새로운 인식 최근에 이벤트 주도 설계를 알게 되었으며, AI가 지배하는 세계에서 최적의 데이터 구조를 고려하던 중 비슷한 결론에 도달함. 이벤트 주도 설계가 복잡성을 관리하고 데이터를 실제로 활용할 수 있다면 가치가 있을 것이라고 생각함. 향후 몇 년 동안 AI가 모든 비즈니스 이벤트에 대한 지식을 가지고 쿼리할 수 있게 되면서 이벤트 주도 설계가 보편화될 것으로 예상함.
Hacker News 의견
PostgreSQL 및 FOSS 리포팅 도구 사용 권장
이벤트 주도 아키텍처의 적절한 사용 시기
이벤트 소싱에 대한 회의적인 경험 공유
도메인 이벤트 모델링의 유용성
이벤트 소싱의 구현에 대한 질문
상향식 대 하향식, 맞춤형 대 범용
이벤트 기반 아키텍처에 대한 지지와 비판
이벤트 소싱과 관계성의 필요성
관계형 데이터의 지지
이벤트 주도 설계에 대한 새로운 인식