2011-05-05 40 views
13

Một ứng dụng Rails 3 chạy trên Postgresql cần phải chuyển sang cơ sở dữ liệu đồ thị để có thể lớn lên. Có rất nhiều người trong số họ và tất cả họ đều cung cấp các loại API, REST chủ yếu.Rails 3 và cơ sở dữ liệu đồ thị

Tôi được lấy cảm hứng từ talks của Emil Eifrem, Giám đốc điều hành của NeoTechnologies, về những gì có thể đạt được với Neo4j. Tôi phải thú nhận, tôi đã chơi với nó và điều này là hoàn toàn những gì chúng ta cần, nhưng có một số trở ngại.

  1. API REST không giao dịch.
  2. Rails 3 ứng dụng đang chạy trên ruby ​​1.9.2, nhưng không phải jRuby 1.5.3 hoặc 1.6 để đạt được API gốc.

Một số cơ sở dữ liệu cũng được điều khiển bởi Java và cung cấp API REST, do đó, không thay đổi gì cả. Một số khác không phải là một lựa chọn cho chúng tôi vì một giấy phép hoặc một chi phí hoặc thiếu đội ngũ đằng sau họ.

Tôi cho rằng tôi đang thiếu thứ gì đó, vì vậy sẽ đánh giá cao bất kỳ mẹo, thông tin chi tiết hoặc lời khuyên nào về lựa chọn của chúng tôi và những gì có thể chơi tốt cho chúng tôi. Cảm ơn.

+0

Bạn có thể mở rộng ý nghĩa của mình bằng 'REST API không giao dịch' không? –

+2

Chắc chắn. Sử dụng REST API, bạn không thể khôi phục một tập hợp các hoạt động cùng một lúc. Ví dụ, bạn muốn xóa 3 nút, bạn thực hiện yêu cầu đầu tiên và thứ hai, nhưng thứ ba bằng cách nào đó không thành công và bạn không thể hoàn nguyên lưu trữ về trạng thái trước khi bắt đầu, với từ "rollback". Nhưng điều này có thể đạt được với API gốc. – mcmlxxxiii

+1

Đó là một vấn đề. Bạn đã báo cáo lỗi này cho các chàng trai neo4j chưa? Tôi chắc chắn họ sẽ sửa nó. –

Trả lời

9

Bạn có thể chạy Neo4jrb với Rails 3 trên jruby 1.6, do đó không phải là vấn đề.

Để chạy API giao dịch (REST) ​​trên đầu trang, bạn có thể dễ dàng viết plugin Neo4j-Server/extension của mình cũng có thể sử dụng Neo4jrb trong nội bộ nhưng hiển thị API phù hợp với miền của bạn và ít chi tiết/trò chuyện hơn API REST của Neo4j-Server REST. Điều này cũng nên dễ dàng hơn để tiêu thụ cho khách hàng của bạn khi nó nói trong thuật ngữ của bạn, từ vựng và trường hợp sử dụng.

Chúng tôi hiện đang làm việc để tạo một tiện ích mở rộng máy chủ ruby ​​chung (j) có thể sử dụng mã được đăng và làm cho nó có sẵn dưới dạng điểm cuối REST mới.

+0

Cảm ơn bạn, Michael. Tiêu thụ mã đăng có vẻ rất yên tâm. – mcmlxxxiii

Các vấn đề liên quan