Công nghệ
landing_page_backend là service Phoenix đứng sau mọi landing page đã publish của Webcake/Storecake. Trong khi builderx_api phục vụ trải nghiệm editor, service này phụ trách runtime: serve trang công khai, capture lead, đẩy dữ liệu sang analytics và các tích hợp khác.
Kiến trúc
landingpagebackend (Webcake API) thiên về page builder + publish + analytics. Khác với builderx_api (tập trung vào thương mại), service này phụ thuộc nhiều vào Oban cho job nền và Kafka cho stream sự kiện. Tài liệu này mô tả các lớp và những luồng quan trọng.
Cấu trúc dự án
Bản đồ thư mục của landingpagebackend.
Bounded context
Các bounded context trong lib/landingpage/. Quy tắc giống builderxapi: phía gọi bên ngoài tránh Repo, event cross-domain đi qua Outbox + queue.
Cài đặt
Quy trình khuyến nghị là dùng Docker để mọi máy đều có cùng phiên bản Elixir, Postgres và các service phụ trợ.
Cơ sở dữ liệu và Replica
landingpagebackend dùng Postgres làm kho chính, kèm logical replication sang Postgres replica để giảm tải cho các workload analytic.
Worker (Oban) và Queue
landingpagebackend chạy job nền bằng Oban (DB-backed), kết hợp RabbitMQ cho job cross-service và Kafka cho event stream. Module worker Oban nằm trong lib/workers/.
Tích hợp
Dịch vụ ngoài và hạ tầng mà landingpagebackend phụ thuộc.
Biến môi trường
landingpagebackend đọc cấu hình runtime ở config/env_config.exs. Tệp mẫu cho local là .dev.env.
Triển khai
landingpagebackend triển khai bằng Ansible + image Docker. Cluster tách theo vai trò (backend API, dịch vụ render, builder, editor, cart, tikpage, worker) để rollout từng phần an toàn.
Runbook
Các lệnh hay dùng khi vận hành / debug landingpagebackend. Đoạn elixir chạy trong IEx (make bash → iex -S mix phx.server).
Xử lý sự cố
Vấn đề thường gặp khi vận hành landingpagebackend. Bổ sung khi gặp lỗi mới.