Chapter 3: Datastore

Anatoly Volkhover

Datastore implementation must depend on the Business Logic, and not the other way around. Ditch CRUD in favor of CQRS. Consider Event Store pattern for its flexibility.

  • Nick says:

    Great chapter explaining details of scalable and maintainable apps. Where can i see a good implementations of patters discussed, in particular CQRS and event store in the scope of JS? This way, it’s much easier to tie knowledge advices together and see things in practice.

    • anatoly says:

      Hi Nick,
      You may want to look up the writing by Martin Fowler. There are also several projects out there that intend to build off-the-shelf event store databases (one of them is on eventstore.com). However, you can totally use any proven SQL or NoSQL database to create your event store; it may not be as efficient as a specialized database, but will carry less risk if you go with a proven vendor. Personally, I had great success implementing event store + CQRS patterns on top of AWS DynamoDB.

  • Konstantin Anthony says:

    The Event Store pattern is definitely an interesting way of avoiding the pitfall of locking all your datastore up writing, which with distributed DB’s can be a massive pain point.

  • Julian says:

    Hi Anatoly, I have a question about this chapter, and I’d about the drawbacks of implementing event store, only performance is mentioned in the book, but there are no other drawbacks mentioned. It looks way more complex to implement, so it works for all cases? Even projects with smaller scope that don’t require this kind of extra complexity?

  • >