Building SaaS with DDD & Clean Architecture in Python — Issue 1

<p>It&#39;s been a few weeks, and I decided to work on a SaaS application &mdash; I had a bunch of ideas for some time now and was looking to focus on a problem space worth solving.</p> <p>I chose Python as the programming language, as I felt a bit rusty &mdash; I have been a Node.js developer for a while and wanted to brush up on my Python skills.</p> <blockquote> <p>Now, I don&rsquo;t recommend this approach. I suggest focusing on the problem and solution and most importantly talking to customers.</p> </blockquote> <p>When building real apps, you can select a programming language that you are most familiar with. Focusing on your knowledge and expertise is more important than getting caught up in the complexities of learning or refreshing a new programming language.</p> <p>My goal was also to brush up on my Python skills and learn DDD and Clean Architecture practices. Hence, I chose Python.</p> <h1>The Problem Space</h1> <blockquote> <p>Companies are using Slack for all internal communications, and with shared channels, outside members can also be part of the conversations. Being used to support customer queries, talk to customers, and collaborate with team members, and much more.</p> <p>Managing conversations with customers and internal teams can be challenging, as it&rsquo;s easy to get overwhelmed. To address this issue, I decided to build a SaaS application that seamlessly integrates with Slack and offers effective conversational support for teams and companies. This solution aims to streamline communication processes and enhance efficiency in providing support.</p> </blockquote> <p>In DDD, the first step is to understand the problem space. Now that we have some understanding of the problem that we are solving, we can focus on the solution space &mdash; the implementation details.</p> <h1>Uncovering Entities &amp; Properties</h1> <p>Entity is a domain object when we care about its individuality when distinguishing it from all the other objects in a system. It&#39;s a unique thing capable of being changed in its lifetime; changes can be so extensive that the object might seem different, yet it is the same object by identity.</p> <p><a href="https://medium.com/@sanchitrk/building-saas-with-ddd-clean-architecture-in-python-issue-1-15cb49f5dff8">Click Here</a></p>