Mój zespół rozpoczyna wdrażanie aplikacji greenfield z wymogiem wielokrotnej dzierżawy. Przeprowadziłem wiele badań na temat wzorców zapewniających prostą skalowalność, w szczególności w przypadku rozproszonej infrastruktury opartej na chmurze, a CQRS wydaje się być modnym hasłem (do tej pory nazywa się "Crack for Architecture Addicts", co uważam za zabawne). Korzyści i pułapki na bok, dość trudno jest znaleźć kogokolwiek oprócz Grega Younga, który użył tego pomysłu szeroko (lub w ogóle) w aplikacjach produkcyjnych i może dostarczyć wskazówek na ten temat w świecie rzeczywistym.Multi-Tenant CQRS Architecture
Oto moje pytania: 1. Czy architektura CQRS uwzględnia typową aplikację dla wielu dzierżawców, czy jest lepiej dostosowana do wewnętrznych aplikacji korporacyjnych na dużą skalę. 2. Jeśli zalecisz, aby był on wykorzystywany w tej sytuacji, możesz podać wskazówki dotyczące podejścia z wykopów na temat podejść - szczególnie w odniesieniu do spraw, które należy podjąć od samego początku, oraz jakie aspekty należy rozwinąć organicznie. 3. Jeśli ktoś próbował i stwierdził, że jest zbyt trudny lub nie zdaje sobie sprawy z korzyści, lub ma mocne argumenty przeciwko niemu (i zaleca trzymanie się CRUD i warstwowego projektu), chciałbym również wiedzieć o tych doświadczeniach.
Dla odniesienia aplikacja będzie napisana w języku .NET, a interfejs będzie początkowo oparty na Internecie (ASP.NET MVC), potencjalnie rozszerzony na klientów mobilnych i grubych. Współbieżność, aktywność transakcyjna i wolumen danych powinny pozostać na stosunkowo niskim poziomie przez cały czas życia aplikacji (w porównaniu do aplikacji finansowych o dużej skali i podobnych). W przypadku infrastruktury planujemy korzystać z platformy Azure.
(Użycie tego jako komentarza, a nie jako odpowiedzi, ponieważ tak naprawdę nie odpowiada ono konkretnemu pytaniu). Jeśli jeszcze tego nie zrobiłeś, sugeruję przeczytanie wyjaśnionego tutaj artykułu Udi CQRS: http: // www.udidahan.com/2009/12/09/clarified-cqrs/ i obejrzyj film na jego temat tutaj: http://skillsmatter.com/podcast/open-source-dot-net/udi-dahan-command-query- odpowiedzialność-segregacja/rl-311 –
Specjalnie dla .NET Azure CQRS sprawdź http://abdullin.com/ i projektu Lokad http://code.google.com/p/lokad-cqrs/ –
Michael, dzięki za komentarze. Rzeczywiście przeczytałem i obserwowałem bardzo dużą ilość informacji na temat tego schematu, w tym tych zasobów. To, czego wydaje się brakować, to jakikolwiek głos od ludzi, którzy używali tego przez jakiś czas, lub nawet właśnie wdrażają go teraz. Zanim przejdę do poziomu teoretycznych korzyści, chcę potwierdzić, że towarzyszące im wyzwania w realnym świecie nie są zbyt duże. Jeden z moich ulubionych cytatów mówi: "Teoretycznie teoria i praktyka są takie same, w praktyce rzadko są." – Mafuba