veganism.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Veganism Social is a welcoming space on the internet for vegans to connect and engage with the broader decentralized social media community.

Administered by:

Server stats:

295
active users

#ArchitectureWeekly

0 posts0 participants0 posts today
Oskar Dudycz 🇺🇦✊<p>In distributed systems, we face a fundamental tension between module communication and module autonomy. Our modules need to exchange information and coordinate actions, yet we want each module to evolve independently without forcing changes across the entire system. </p><p>This tension becomes evident in event-driven architectures, where modules communicate through events and messages.</p><p>Consider a typical e-commerce platform. The payment module needs to process requests from orders, handle reimbursements, manage subscriptions, and potentially deal with dozens of other payment scenarios. </p><p>Each connection point between modules represents a potential coupling that can ripple through the system when requirements change.</p><p>The traditional approach involves modules directly referencing each other through event types, API endpoints, or shared data structures. </p><p>This creates a web of dependencies where adding a new module or changing an existing one requires coordinated updates across multiple teams.</p><p>What if we could enable modules to communicate without knowing about each other's existence? </p><p>What if a payment module could process requests from any source without being programmed to handle specific scenarios?</p><p>I've explored in the latest <a href="https://hachyderm.io/tags/ArchitectureWeekly" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ArchitectureWeekly</span></a> how predictable identifiers, specifically Uniform Resource Names (URNs), provide an elegant solution to this challenge.</p><p>The key insight is that identity can carry meaning without creating coupling. URNs provide a standardised way to structure this identity, enabling infrastructure-level routing while maintaining module independence. </p><p>The payment module could process generic payment requests, inverting the dependency and publishing responses using the correlation ID for routing. It never needs to know whether a payment is for an order, reimbursement, or subscription.</p><p>Read more in <a href="https://www.architecture-weekly.com/p/predictable-identifiers-enabling" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">architecture-weekly.com/p/pred</span><span class="invisible">ictable-identifiers-enabling</span></a></p><p>Are you using such an approach in your systems?</p>
Oskar Dudycz 🇺🇦✊<p>Object-oriented or relational? Why not both?</p><p>For many years, we tried to fit the business data into a normalised table structure. We used Object-Relational Mappers, which was a constant battle on how to map unfitting models.</p><p>Then document databases like MongoDB came along and got traffic. </p><p>Still, many people wanted guarantees they had in relational databases, they also wanted to reuse muscle memory related to operations and other tooling.</p><p>Now we have the choice as we have <a href="https://hachyderm.io/tags/JSONB" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JSONB</span></a> data type implemented by <a href="https://hachyderm.io/tags/PostgreSQL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PostgreSQL</span></a> and then by MySQL, SQLite.</p><p>The B in JSONB stands for binary. It looks like a JSON, it quacks like a JSON, but it's not JSON. And thanks to that, it's powerful.</p><p>When you're storing JSON data in JSONB, it's parsed, tokenised, and stored in a tree-like structure. Types are preserved, and a hierarchical structure is also preserved, and thanks to that, you can index it and efficiently query it.</p><p>I'm super happy that in recent years, I have had the opportunity to use Postgresql and JSONB, first in Marten and now in Pongo. I didn't look back. JSONB has its cons, but for most typical line-of-business applications, they're negligible.</p><p>I finally wrote an intro in <a href="https://hachyderm.io/tags/ArchitectureWeekly" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ArchitectureWeekly</span></a> about how JSONB works, check it, tell me how you liked it and share with your friends!</p><p>And most importantly, play with it on your own 😊</p><p><a href="https://www.architecture-weekly.com/p/postgresql-jsonb-powerful-storage" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">architecture-weekly.com/p/post</span><span class="invisible">gresql-jsonb-powerful-storage</span></a></p>