nilgai (2) [Avatar] Offline
#1
Itamar

Now retired, I am working on transitioning a personal accounting prototype application to a SAAS environment. There are 40+ tables per user account in an MS Access db and the app is coded in vba.

I Would like to attempt a DDD style approach with some CQRS where appropriate and feel that RavenDB might offer a way-ahead.

Really enjoying the early chapters of your book and eagerly await future offerings.

Appreciating that you say that the book is mainly intended for a C# development environment, I hope that you might be able to offer a little guidance in later chapters for utilising the RavenDB API from a JavaScript environment as I see Nodejs, Express and Angularjs as a possible easier (and less costly VS!) path for me.

Your views and pointers on using the Command Query Responsibility Segregation (CQRS) pattern and Event Sourcing (ES), using RavenDB perhaps in conjunction with a relational db would be really welcome.

Another topic that I (and I am sure many others) would be really interested to read about is handling multi-tenent situations e.g. keeping individual user's account data safe and secure in a Raven database but using common software with appropriate means for authentication and authorization of users allowed to access those accounts for various roles/purposes.

Best wishes (and keeping fingers crossed),

John Passmore (www.dwba.co.uk)
itamar.synhershko (10) [Avatar] Offline
#2
Re: RavenDB API from Javascript, CQRS/ES and Multi-tenent Issues
Hi, very glad to hear you enjoy reading the book.

Chapter 5 is going to discuss document-oriented data modeling, and I'll be using a few DDD concepts to guide the reader through the thinking process. That chapter is where readers new to doc DBs are going to learn the modeling approaches from scratch, and where people like yourself who are already familiar with DDD can learn how to apply those concepts to work more natively with RavenDB.

Unfortunately, Event Sourcing and CQRS are very advanced topics from the view point of the book. They go a lot beyond just DDD, and I can't really go into them without giving the topic its own chapter. Teaching modeling properly is going to be challenging enough, therefore I consider this to be out of scope for this book. However, I'm sure you can initiate a discussion on the topic on the RavenDB google group to gather opinions and feedback. Please note some concepts which are useful for implementing ES/CQRS type systems are being taught in the book (namely data modeling and stored index fields in chapter 4).

Using index replication to a SQL database is going to be discussed in the book, if this is what you meant.

I may be adding an appendix on using the REST API if I'll see there's enough demand. There is already a simple guide available in the RavenDB documentation, though. Note, (and I'll be adding this note in the book) that deployment of RavenDB without some sort of a software facade in front of it is considered a bad practice. You shouldn't allow client-side applications (AngularJS etc) talk to RavenDB directly. I'll be discussing this in the Deployment chapter.

Itamar.
nilgai (2) [Avatar] Offline
#3
Re: RavenDB API from Javascript, CQRS/ES and Multi-tenent Issues
Thanks for the prompt response Itamar and I appreciate and understand all your comments.

Regarding multi-tenent, might you have something to say about that in the book - using ravenDB?

John
seankearon (7) [Avatar] Offline
#4
Re: RavenDB API from Javascript, CQRS/ES and Multi-tenent Issues
+1 for REST API coverage smilie
itamar.synhershko (10) [Avatar] Offline
#5
Re: RavenDB API from Javascript, CQRS/ES and Multi-tenent Issues
Yes. Basically every server can have multiple databases and its rather easy to "talk" to multiple databases from within one application. I'll discuss multi-tenancy in the chapter about scaling out.

Itamar.
itamar.synhershko (10) [Avatar] Offline
#6
Re: RavenDB API from Javascript, CQRS/ES and Multi-tenent Issues
Noted
Sean.Feldman (1) [Avatar] Offline
#7
Re: RavenDB API from Javascript, CQRS/ES and Multi-tenent Issues
Hi Itamar,

If you could provide info on JavaScript API, that would be great.

Thank you,
Sean