Decoupling Customers

Currently, System6 has a single customer model that links to all the products. This customer model is tied to the Lead in Close CRM. Unfortunately, I’ve found this centralized Customer object a bit difficult to scale past services. We may have 100s of customers for a product but only a couple dozen for services.

To alleviate this problem each product will have its own customer and will be loosely tied to the Close CRM Lead. This results in each product being built as a silo with its own PnL.

An additional benefit of this is we are becoming “microservices” in that each app in Django acts as a microservice with very small scope to make it easy to test and maintain.