<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Fabian Wesner</title>
    <description>The latest articles on DEV Community by Fabian Wesner (@fabianwesner).</description>
    <link>https://dev.to/fabianwesner</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1009233%2F88be6b02-fe6e-47cd-a0cd-218b717863a8.jpeg</url>
      <title>DEV Community: Fabian Wesner</title>
      <link>https://dev.to/fabianwesner</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fabianwesner"/>
    <language>en</language>
    <item>
      <title>Building an Open Source Seller Center in Public</title>
      <dc:creator>Fabian Wesner</dc:creator>
      <pubDate>Wed, 04 Dec 2024 11:30:08 +0000</pubDate>
      <link>https://dev.to/fabianwesner/building-an-open-source-seller-center-in-public-2c32</link>
      <guid>https://dev.to/fabianwesner/building-an-open-source-seller-center-in-public-2c32</guid>
      <description>&lt;p&gt;Many e-commerce shops want to become marketplaces, but they lack a Seller Center. A Seller Center is important because it lets sellers manage products, prices, stock, and orders. Commercial solutions like Mirakl or Marketplacer exist, but they are expensive. Surprisingly, there is no good open-source alternative available. This is strange because many marketplaces must have built their own Seller Centers already.&lt;/p&gt;

&lt;p&gt;To solve this, I started developing an open-source Seller Center (OSSC). It will help shop owners to expand their shops into marketplaces. The goal is to make a simple and reusable solution that others can use without big costs.&lt;/p&gt;

&lt;p&gt;I try to keep everything simple and efficient. For this, I follow three main rules during development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t over-engineer: Build only what is needed and avoid unnecessary complexity (I am building a PHP app, nothing fancy)&lt;/li&gt;
&lt;li&gt;Reuse existing tools: Use frameworks and libraries that already solve common problems (FilamentPHP in my case)&lt;/li&gt;
&lt;li&gt;Use AI when helpful; especially for coding (Windsurf is my prefered IDE).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have worked on this project for a few days and completed about 25% of the minimum functionality. There are two user roles with basic features: Marketplace Owners and Sellers.&lt;/p&gt;

&lt;p&gt;You find the public demo here: &lt;a href="https://www.ossc.tech/#demo" rel="noopener noreferrer"&gt;https://www.ossc.tech/#demo&lt;/a&gt; The project is in progress and I am regularly sharing updates on my LinkedIn account and blog.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>laravel</category>
      <category>marketplace</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>When to choose a SQL or NoSQL database</title>
      <dc:creator>Fabian Wesner</dc:creator>
      <pubDate>Mon, 16 Jan 2023 17:25:16 +0000</pubDate>
      <link>https://dev.to/fabianwesner/when-to-choose-a-sql-or-nosql-database-4i35</link>
      <guid>https://dev.to/fabianwesner/when-to-choose-a-sql-or-nosql-database-4i35</guid>
      <description>&lt;p&gt;Regarding databases, there are plenty of options to choose from. For example, there are relational databases, document storage databases, graph databases, and other types suitable for specialized use cases.&lt;/p&gt;

&lt;p&gt;In the context of a SaaS application, you usually need to choose between a relational or a document storage database. In this article, I will explain how to decide which one to use in which scenario. Selecting the type of database is a fundamental decision you must make in the first days of your project. You'll face an effortful data migration if you change your mind later.&lt;/p&gt;

&lt;p&gt;The two most common relational databases are Postgres and MySQL. There are some differences between these two technologies, but this is outside of the scope of this article. For most projects, they are equally good choices. That's why I recommend just using the system you're familiar with. Relational databases allow you to model your data structure using typed fields and relations among your entities. This modeling process requires effort and experience but can be adopted by most developers quickly. &lt;/p&gt;

&lt;p&gt;A document storage database is based on key-value pairs. Objects are stored in a structured way, usually represented as a JSON object. These objects are accessed directly by their keys instead of queries. In terms of performance, both approaches are equally good. The document storage database has advantages in very high amounts of data because it does not need to obey the relationship among the objects. Therefore the database can efficiently distribute the data to several nodes.&lt;/p&gt;

&lt;p&gt;You may ask yourself, which approach is the right fit for your project? The answer is surprisingly simple. Only a relational database will be the right choice if your domain model has relations. Of course, this is not a law of nature. You can still build your SaaS application on a document storage database. Often this will result in a very high amount of redundancy and even inaccurate data because only your code is responsible for keeping the data consistent. Every bug in your application can easily lead to a mess. The database will not support you at all to keep your data consistent.&lt;/p&gt;

&lt;p&gt;We often see that developers use document storage databases for the wrong reason. Sometimes they assume that they are faster (which is not true). Sometimes they think they need unlimited scalability, but this isn't the case for almost all projects. The most popular commercial document storage database is Firestore, a NoSQL cloud database provided by Google's Firebase. Firestore is especially a good fit for mobile apps in case all you need is to persist JSON objects. It's easy to start with, but it does not offer you the comfort of relations. And also, there's no good way to query your data programmatically. If your use case is not trivial, you will see the limit of the approach very soon in your project. For this reason, most projects should consider using a relational database. There are plenty of good solutions on the market to support you in modeling your schema and accessing it from your application via API, making document storage databases unnecessary for most projects. For example, some so-called Backend-as-a-Service systems like Strapi, Directus, Supabase, and others enable you to design your data model and automatically create an API. If you implement your backend yourself, you can use an ORM to do the heavy work. Typical examples are Prisma for Node.js and Doctrine for PHP.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Document databases are useful for processing high loads of incoming and generally very high amounts of data. For instance, when you build a storage system for log files, chat messages or sensor data, these NoSQL solutions are a good fit.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>networking</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
