Projektuję prototypowy monitor czasu rzeczywistego do przetwarzania dość dużych ilości (> 30G/dzień) strumieniowych danych numerycznych. Chciałbym napisać to w Clojure, ponieważ język wydaje się dobrze pasować do systemu "Observer + State Machine", który prawdopodobnie skończy jako.Lamina kontra Storm
Dwoma głównymi kandydatami, których znalazłem do opracowania, są Lamina i Storm. Jest też Riemann i Pulse, ale ten pierwszy wydaje się bardziej kompletnym rozwiązaniem, niż ramą, a ja wolałbym nie angażować się jeszcze w ostateczny projekt; Repozytorium Pulse wygląda na mało nieopłaconego?
Co chciałbym wiedzieć; z jakimi przepływami danych i pracy są zoptymalizowane te dwa projekty? Burza wydaje się bardziej dojrzała, ale Lamina wydaje się bardziej kompozycyjna i "Clojureic" (moim tłem jest Python, więc mam tendencję do oceniania tego bardzo).
Co znalazłem od czytania on-line:
Burza wydaje się być Big Data (stream) skoncentrowany, rdzeń jest prosta Java z DSL Clojure. Wygląda na to, że pre = built handlers dla wielu istniejących źródeł danych.
Lamina jest bardziej lekkim, nadającym się do wielokrotnego użytku elementem, który pozwala Clojure na kodowanie do abstrakcji, co oznacza, że może być reused as a base for other eventing systems. Źródła danych muszą być obsługiwane w kodzie.
Obie mają użyteczny zestaw funkcji agregacji/dzielenia/biblioteki obliczeniowej po wyjęciu z pudełka. Integracja z grafiką Laminy jest miłym akcentem.
Daje to wiele rzeczy w pakiecie, więc mam zamiar spróbować i zobaczyć, czy to przesada. Lamina, od mojego majsterkowania, wydaje się zbyt niska, choć bardzo opływowa i elegancka. Dzięki! – CLF