Home

2022.04.11 - In defense of simple architectures

Pi

Ping Xia

April 11, 20226 min read

Title: 2022.04.11 - In defense of simple architectures

This Week’s Highlights

In defense of simple architectures https://danluu.com/simple-architectures/
Wave is a $1.7 B company with 70 engineers whose product is a CRUD app that adds and subtracts numbers. In keeping with this, our architecture is a standard CRUD app architecture, a Python monolith on top of Postgres. Starting with a simple architecture and solving problems in simple ways where possible has allowed us to scale to this size while engineers mostly focus on work that delivers value to users. Stack Overflow scaled up a monolith to good effect (2013 architecture / 2016 architecture), eventually getting acquired for $1.8 B.

Why do these programmers insist on “free” coding for 30 years? https://mp.weixin.qq.com/s/NUh9Irom16fPVedjoybS4w
In recent years, Chinese developers have become a major force in the global open‑source ecosystem. Public statistics show that Chinese code now accounts for roughly 40 % of contributions to the worldwide open‑source community, and out of more than 60 million developers worldwide, at least 20 million are from China. Yet we wonder: compared with abroad, China’s open‑source history is only about thirty years long—who are the people quietly driving change in that time? And how did China go from “having nothing” to a “flourishing landscape,” carving out its own path to technological independence? This issue of “Microscope Stories” has found the programmers who have silently contributed to China’s open‑source journey, hoping their stories will illustrate the dramatic thirty‑year evolution.

Functions, Objects and the Principles I Follow https://alexkondov.com/functions-objects-and-the-principles-i-follow/
Resources on structure and design are usually presented in context, so you need imagination and creativity to turn them into more generic rules. Whenever I find myself navigating an implementation without known patterns to help me, I fall back on some fundamental programming principles. In chess, if you follow the basic ideas you will naturally end up in good positions. The same is true in software. Like chess players who develop their knights before their bishops, here are the software‑development principles that I follow.

Integrating Content Management Systems in model‑driven processes https://modeling-languages.com/content-management-system-modeling-generation/
We know very well how to model databases as input/output artefacts in a model‑driven development process. We know how to extract their schema, query their data, or conversely generate the SQL code that will create them. We even know how to do this for NoSQL databases. But nowadays, many companies do not access their data via a database but through a Content‑Management System (CMS). In this post, we show how to integrate a CMS as an input data source in a modeling project.

Tweaking In The Browser https://ishadeed.com/article/tweaking-in-the-browser/
When we already have a design implemented in the browser, it’s much easier to tweak it, and eventually we might “design” something different from what we started with. I prefer the term “tweaking” for that context. The question is, what do we need to be able to design in the browser? And what can we do in browsers with the current developer tools?

Airtable: What is a database? Everything you need to know. https://blog.airtable.com/what-is-a-database/
A database is a collection of data that is organized so the information within can be easily accessed later. Your data will be more accurate, reliable, and easy to use if you have a database. Related: What is scripting? .

Deep Reads

Decentralization for Web3 Builders: Principles, Models, How https://future.a16z.com/web3-decentralization-models-framework-principles-how-to/
The promise of decentralization has been heavily discussed and debated, from why it matters to the bigger question of who will control the software that powers the internet. These questions are critical, because as we have seen, when control is held in the hands of a very few, encroachments on personal freedom, choice, and privacy are inherent. “Don’t be evil” is very different than “can’t be evil” when a CEO decides one course or another.

Migrating from Apollo Server v2 to v3 — Part 2: Server Upgrade https://medium.com/lego-engineering/migrating-from-apollo-server-v2-to-v3-part-2-server-upgrade-e9a9b7cafad5
In the last section, I wrote about how we upgraded our tooling in preparation for our full Apollo Server 3 upgrade. In the final article on this topic, I’ll talk about the steps we took to mitigate and resolve all the breaking changes in v3, as well as how we upgraded the live server in place.

How Kafka Connect helps move data seamlessly https://engineering.grab.com/kafka-connect
Grab’s real‑time data platform team (aka Coban) has written about plumbing at scale, optimally scaling Kafka consumer applications, and exposing Kafka via VPCE. In this article, we will cover the importance of being able to easily move data in and out of Kafka in a low‑code way and how we achieved this with Kafka Connect. Related: Securing Kafka® Infrastructure at Uber

Comparing Go vs. C in embedded applications https://stackoverflow.blog/2022/04/04/comparing-go-vs-c-in-embedded-applications/
Impossible‑tight deadlines, unrealistic schedules, and constant pressure to develop and release applications on time while still achieving excellent quality. Sound familiar?

Becoming a Full‑Time Creator as a Software Engineer: Controversial Advice https://blog.pragmaticengineer.com/how-to-become-a-full-time-creator/
With remote work becoming more common in tech, I get more and more messages from people asking the same: how can they do what I do? Despite being considered a successful creator, I don’t think that “creator” is a real thing—at least not a category anyone can or should aim for. This post collects my thoughts on how to become a full‑time creator. Or, as I prefer to think of it, run a one‑person, bootstrapped, profitable startup. Related: The Scoop: Inside Fast’s Rapid Collapse

The business of design https://medium.com/dropbox-design/the-business-of-design-359499a64c57
Core design principles are undervalued and overlooked in most of today’s business operating practices. Complementing design principles with business operational practices will bring more empathy, connection, innovation, and financial returns to any team or company.

Alibaba’s Thirteen‑Year Computing Power Breakthrough https://mp.weixin.qq.com/s/1I86gXdgNSAKUve9CVvc4A
“Distributed computing systems” today have a catchier name—cloud computing. The team led by Wang Jian is now the backbone of Alibaba Cloud. At a turning point in history, Wang Jian was filled with ambition, carving a mission for the nascent Alibaba Cloud: for the value that cannot be computed. At that time, however, they had lofty aspirations but no real forces to back them. Roughly speaking, to realize “the value that cannot be computed,” at least two steps are needed: “building the cloud” and “moving to the cloud.”

Fresh Finds

Mataroa blog https://mataroa.blog/ https://news.ycombinator.com/item?id=30896661
Naked blogging platform, for minimalists. Just write.

Celebrating 17 years of Git Node v12.22.12 : Node.js 12 will reach End‑of‑Life status on 30 April 2022 An Update on Standalone Components Announcing Rome Formatter [Announcing RedwoodJS 1.0 and $1M Funding](https://tom.preston-werner.com/2022/04/04/redwood-v1-and-fu

(content truncated)


Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.

Keep reading

More related articles from DriftSeas.