Architecture Weekly Issue #44. Articles, books, and playlists on architecture and related topics. Split by sections, highlighted with complexity: 🤟 means hardcore, 👷♂️ is technically applicable right away, 🍼 - is an introduction to the topic or an overview. Now in telegram as well.
It's already been 270 days since Russia's crazy, brutal, an unjustified war against Ukraine. We condemn this war and want it to stop ASAP. We continue this newsletter so you can advance your skill and help the millions of Ukrainian people in any way possible. If you want to help directly, visit this fund.
This week Spring announced the general availability of version 6.0 bringing baseline to Java 17, support of Java EE 9 and, what's more important, support for AOT Spring Application Context and enabling of Graal VM support for Sprint Boot 3. Aside from that, I want to share a couple of great decks and articles with you in the highlights, and all the rest reside in the Follow-Up section.
The Distributed Computing Manifesto 🍼
This week the CTO of Amazon - Wener Vogels - published a Distributed Computing Manifesto dated 1998. In this manifest Amazon states that support an order of magnitude bigger amounts of orders they need to shift both the system approach as well as development culture, separating data from applications and introducing strict business checks. A fascinating read which still resonates.
Apache Pulsar, Splunk and 10 Petabytes of data daily 👷♂️
Apache Pulsar is a Kafka competitor being a streaming platform. Splunk showcased how they solved a problem of ingesting and transforming 120Gbps of logs for several of their clients. Calculations, Design decisions and optimizations inside!
Managing Your Data Lifecycle with Time-To-Live Tables 👷♂️
Time to live is a common capability. For example, DynamoDB has it. If you implement the OTPs on your own, you will find that useful. TiDB has it as well, and automatically removing data can also help with the cost of your storage. Read how TiDB supports TTL on row and partition level and what issued they faced.
Using the cloud to scale Etsy 🍼
Please welcome a story from Etsy - a unique art items marketplace - on how they migrated to the cloud in expectation of 3times growth. This is the first article in the series. Still, it already covers the principles of migration and the challenges like transitioning the system from a LAMP monolith to a cloud-native application and migrating the data lake to BigQuery.
#casestudy #scalability #cloud #migration
API Design for teams 👷♂️
It's relatively easy to design an API with a single team. However, once you have more than 3, it becomes a problem to align them. Nobody wants having to save an entity in API 1 via POST method, and API 2 uses PUT method and different body format. In order to align the design you to approach API from a perspective of use cases, requirements, common tools and agreements. More details inside.
Strategies and Tools for performing migrations on the platform 🍼
Spotify shared a bunch of receipts on strategies for platform migrations. They speak about mobile, but it does not really matter: changing platform faces similar challenges no matter the technology. Key takeaways: focus on stakeholder, communicate extensively, make PoC and allow teams to help you. More details in the article.
#strategy #spotify #platform #migration
Lesson learned on Migrating to AWS Aurora 👷♂️
Kimberly from Gridium shares a case study how they migrated from Postgres RDS to AWS Aurora. The reason was as the storage in a cluster came with a cost despite not being fully used, and they hoped to reduce it by using Aurora. But it rendered to be even more costly! So the team had to put some effort to analyze what causing the biggest part of the bill and then optimize it. Chances are the migration was not required in a first place given the same optimization. Figure out the details!
#aws #cloud #aurora #database #migration
Event-Driven Architecture - 5 Pitfalls to Avoid 👷♂️
Event Driven architecture comes with benefits like loose coupling, ease of debugging by replaying the events, etc. However, it is also easy to make trivial mistakes like forgetting atomicity in issuing an event alongside writing to the db, overusing event sourcing, large payloads in the events, etc. Natan from Wix shares the remedies for those mistakes.
Introduction to Chaos Engineering 🍼
Chaos Engineering is a practice of checking how your system behaves if something really bad happens, like a whole datacenter going offline. It is tempting to just simulate the event and then trying to fix the discovered problems, but you can do it more effectively, if you follow the best practices like formulating hypothesis, testing in production and others, listed in the Harness.io blog.
Enterprise Architecture Tools 🍼
What the hell does Enterprise Architect do? Well, strategic decisions and technology landscape management are among the position roles. In order to do that the EA should understand the capabilities, what applications support them and how well do they do. Tools like Archimate, Red-Green-Amber analysis and other can help a lot. If not - you can always build one with Excel!
Like the newsletter? Consider helping to run it at Patreon or Boosty. Patrons and Boosty subscribers of a certain level also get access to a private Architecture Community. Big thanks to Nikita, Anatoly, Oleksandr, Dima, Pavel and Robert for already supporting the newsletter.