This is the first of a series of blog posts sharing some knowledge about how to develop a real-world software using RavenDB. The goal is to show the benefits of adopting RavenDB as the database and some lovely techonologies for a complex domain.
Why a CRM?
Quoting Wikipedia:
Customer relationship management (CRM) is an approach to managing a company’s interaction with current and potential customers. It uses data analysis about customers’ history with a company and to improve business relationships with customers, specifically focusing on customer retention and ultimately driving sales growth.
One important aspect of the CRM approach is the systems of CRM that compile data from a range of different communication channels, including a company’s website, telephone, email, live chat, marketing materials, and more recently, social media. Through the CRM approach and the systems used to facilitate it, businesses learn more about their target audiences and how to best cater to their needs.
CRM is a very complex domain, and I am sure that we could learn a lot working with it.
In this series, we will cover a lot of interesting topics such as microservices, CQRS, SPA and, of course, RavenDB.
Why RavenDB?
If you know nothing about NoSQL, it is time to solve it. Nothing better to start than learning a powerful and easy-to-use database such as RavenDB.
RavenDB is a NoSQL document database, safe by default and optimized to efficiency. In this series, we will use RavenDB 4.0 RC which is fast and multi-platform.
As professional developers, we need to break out the relational-only mindset and move on. RavenDB allows us to store arrays and complex objects in single documents (instead of multiple records into multiple tables), to use human-friendly ids instead of meaningless integers, and to query data in a very efficient way.
Using RavenDB, we minimize the need for a clear separation between the domain and the persistence model.
If you are coming from the “relational world,” RavenDB makes your life easier supporting ACID transactions and providing a familiar programming model.
RavenDB schema-free collections fit perfectly with CRM.
What to expect?
A lot of fun and code, for sure. No more “hello world” examples.
Before starting, I strongly recommend you learn the basics about RavenDB subscribing the Bootcamp (It’s really easy to follow).
The real world demands real code. Welcome to CRM Journey with RavenDB.