Architecture Weekly #120 - 27th March 2023
Welcome to the new week! Let’s say that we’d like to enforce the uniqueness of the user email. Theoretically, you could query a read model keeping all users’ data and check if the user with the selected email already exists. Easy peasy? It sounds like it, but it’s not. Such an approach will give you a false guarantee. In the meantime, between you got the result, ran your business logic and stored new user information, someone could have added a user with the same email. Querying is never reliable; we should tell, not ask. So, in this case, claim the user email end either succeed or fail. Unique constraint validation is one of those things that looks simple but is not always easy. From my experience, a unique constraint requirement usually indicates that our business people bring us a solution instead of a problem. We should ensure that what we’re trying to provide here is a real requirement and ask enough whys before we commit to it. Still, sometimes we need to select the hill we’d like today for or just need to do our stuff. I struggled to create code for the starting phase showing the common architecture/implementation flaws. I was even considering paying some junior to write such. I needed a code to be the starting point for my new workshop, Event Sourcing in production. Now I found a solution and started to use ChatGPT. The code it generates seems to be a perfect match for such needs! Jokes aside. The tool is impressive, and I strongly believe it's a must-have nowadays as it speeds up boilerplate work enormously. I remember the days before there was StackOverflow, and we somehow could write code; we also weren't fired (as was predicted 10 years ago) because of it. Did our work change? Sure? Is it better or worse? It's different. And that's great; we just need to adapt and find a good way of using this tool. I'm considering it a chance to focus on what's important. Working with ChatGPT reminded me to pair coding with a skilled coder but a bad programmer. You will get decent results if you drive it well, but it won't set architecture for you. It's a tool that reminds me Memento plot. A guy that has old memories remember what happened a minute ago but forgets what we talked 10m ago and is not able because of that to be too creative. See the current result in the repo: https://github.com/oskardudycz/event-sourcing-on-prod-workshop/. If you’d like to learn more about why this code, even if it’s looking pretty well, has serious flaws to consider using on prod, contact me, and let’s organise the training for you and your colleagues. See details on my workshops page. See also more about the application code generation based on ChatGPT and related tools in: See also a great write-up to see how it works to understand its limitations: TLDR, no need to be afraid that we’ll be replaced; we’ll still need to move tickets in our backlogs, talk to humans and work with them. But the chance is that we’ll have more time for what’s more important and do it better, e.g.: We’ll still have dramas, like the latest Docker drama. Maybe they used ChatGPT to make decisions and write the email for them? Or maybe they did not but should have been?
I’m almost sure that no ChatGPT was involved in making such impressive migrations But no worries, no ChatGT was and will be involved in writing Architecture Weekly or my blog! Check also other links! Cheers p.s. I invite you to join the paid version of Architecture Weekly. It already contains the exclusive Discord channel for subscribers (and my GitHub sponsors), monthly webinars, etc. It is a vibrant space for knowledge sharing. Don’t wait to be a part of it! p.s.2. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, and putting pressure on your local government or companies. You can also support Ukraine by donating, e.g. to the Ukraine humanitarian organisation, Ambulances for Ukraine or Red Cross. Architecture
DevOps
FrontendAI
.NETNode.js
WebAssemblyCoding LifeManagementTrivia |
Older messages
Architecture Weekly #119 - 20th March 2023
Monday, March 20, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
Architecture Weekly #118 - 13th March 2023
Monday, March 13, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
Architecture Weekly #117 - 6th March 2023
Monday, March 6, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
Architecture Weekly #116 - 27th February 2023
Monday, February 27, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
Architecture Weekly #115 - 20th February 2023
Monday, February 20, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
You Might Also Like
ALERT: Ivanti Flaw CVE-2025-0282 Actively Exploited, Impacts Connect Secure and Policy Secure
Friday, January 10, 2025
THN Daily Updates Newsletter cover Deep Learning For Dummies ($21.00 Value) FREE for a Limited Time Take a deep dive into deep learning Download Now Sponsored LATEST NEWS Jan 10, 2025 Taking the Pain
The Sequence Research #466: Small but Migthy, Diving Into Microsoft Phi-4
Friday, January 10, 2025
Some architecture details about Microsoft's famous SLM. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Notes app can do what now?
Friday, January 10, 2025
Hey there, Do you ever use the Notes app on your iPhone? If you do, you'll want to keep reading! The Notes app might look simple, but it has lots of great features to make your life easier. For
The Commodification of Pleasure
Friday, January 10, 2025
…and the enclosure of creative talent ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Invitation to the Event Sourcing workshop
Friday, January 10, 2025
Hey! I'm usually not making New Year commitments. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
SWLW #633: AI and cognitive offloading, The story in your head, and more.
Friday, January 10, 2025
Weekly articles & videos about people, culture and leadership: everything you need to design the org that makes the product. A weekly newsletter by Oren Ellenbogen with the best content I found
Data Science Weekly - Issue 581
Thursday, January 9, 2025
Curated news, articles and jobs related to Data Science, AI, & Machine Learning ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
💻 Issue 444 - Check Out My New CV as a Full Stack .NET Developer!
Thursday, January 9, 2025
This week's Awesome .NET Weekly Read this email on the Web The Awesome .NET Weekly Issue » 444 Release Date Jan 09, 2025 Your weekly report of the most popular .NET news, articles and projects
💎 Issue 451 - Useful things you can do with Rails console
Thursday, January 9, 2025
This week's Awesome Ruby Newsletter Read this email on the Web The Awesome Ruby Newsletter Issue » 451 Release Date Jan 09, 2025 Your weekly report of the most popular Ruby news, articles and
💻 Issue 451 - The best way to iterate over a large array without blocking the main thread
Thursday, January 9, 2025
This week's Awesome JavaScript Weekly Read this email on the Web The Awesome JavaScript Weekly Issue » 451 Release Date Jan 09, 2025 Your weekly report of the most popular JavaScript news, articles