r/softwarearchitecture 19h ago

Discussion/Advice Announcing the State of Software Architecture Survey

7 Upvotes

Hello everyone!

Over the past couple of years administrating the subreddit, I've seen a lot of trends change over time both in terms of what people are seeking discussions about and the answers that people generally give. Building this community has been a privilege as I watch it grow and a broader user base has emerged.

Throughout the life of this sub since I took ownership, the vision has always been the same -- to create a place where the art of Software Architecture is accessible to everyone. That only happens with faithful participation in the sub from every member we have, even the upvotes matter.

As a longtime frontend enthusiast, I've seen surveys like the famous State of JS survey illuminate the JavaScript industry in ways that isn't really possible otherwise. It is not the most authoritative perspective on the state of the JavaScript ecosystem, but it is a unique window that is used by teams and companies across the globe. I've ran a "State of" survey in the past for smaller communities and saw first hand how it can remove invisible barriers of entry.

Seeing that transparency and benefit to the JS community and others is the reason why I'm starting our very own State of Software Architecture survey. This survey is meant to reveal a lot of the hidden parts of our practice, such as pattern usage, architectural maturity across industry, common practices, and emerging trends. It will also highlight something that was very difficult for me to grasp as I first started my journey in Architecture: What does an architect do in the real world?

The State of Software Architecture survey will always be as transparent as possible, open source, never-for-profit, and licensed under GPL 3.0. Sponsors cannot pay survey members and cannot influence the results of the survey.

The first survey will take place in the late fall of this year! In order to get going, I am putting out an open call for volunteers to join the team to create and administrate the survey. This will strictly be for volunteer, as is the same for every other member of the Survey team. I can't emphasize enough that this is not a way to earn an income!

I need the following expertise areas to join the team:

  • Graphic Design (No AI-generated imagery!)
  • Data Visualization
  • Architectural knowledge within big tech, niche areas (medtech/edtech/defense/etc), or startups.

If you would like to volunteer, please fill out this form:

https://forms.gle/a9i7ENvFxKysX3Et8

If you are just interested but don't want to volunteer, stay tuned for more information about the Survey in the coming months. I sincerely appreciate every single person in this community, thank you all!


r/softwarearchitecture 1d ago

Tool/Product Manning giveaway: Architecting for Autonomy — designing agentic AI systems beyond the demo

2 Upvotes

Hi r/softwarearchitecture — Stjepan from Manning here. Mods said it's ok to post this here.

We’ve just opened the MEAP for Architecting for Autonomy: Agentic AI in the enterprise by Anjali Jain and Philip O’Shaughnessy, and I thought it might be relevant here because the agentic AI discussion is quickly becoming an architecture discussion.

Book page:
https://www.manning.com/books/architecting-for-autonomy

Architecting for Autonomy: Agentic AI in the enterprise

A lot of the public conversation around agents is still focused on prototypes: tool calling, workflows, orchestration, copilots, and “look what this agent can do.” Those are interesting, but the harder questions start showing up when you imagine these systems inside actual organizations:

Where should autonomy sit in the system?
What decisions should an agent be allowed to make?
When should it escalate to a human?
How do you design for observability, auditability, and rollback?
How do you separate useful autonomy from a fragile chain of prompts?
What changes when the system can choose a path instead of just executing a predefined one?

That’s the space this book is trying to explore. It’s less about building a toy agent and more about the design tradeoffs around agentic systems in enterprise environments: governance, boundaries, risk, trust, business architecture, human oversight, and how autonomy fits into existing systems and teams.

The book is in MEAP, so it’s still being written and updated as chapters come in. Early readers can follow along and send feedback while the book is still taking shape.

As always, for the community, we have:

5 free ebooks to give away
50% off with code: MLJAIN350RE

For the giveaway: comment with one architecture question or concern you think teams are underestimating with agentic AI. I’ll pick 5 people and send ebook codes.

I’d also be curious to hear how people here are thinking about this: are agents just another application pattern, or do they change how we should design boundaries, responsibilities, and failure handling in software systems?

Thank you.

Cheers,

Stjepan


r/softwarearchitecture 1h ago

Discussion/Advice How do you handle APIs that cannot paginate and must return the entire dataset?

Upvotes

I'm building a permissions matrix where:

  • Rows = permissions (organized as a hierarchical tree)
  • Columns = user roles
  • Each cell indicates whether a role has a given permission.

The UI requires the entire hierarchy to be visible at once (expanded by default), so traditional pagination isn't really an option. The frontend uses virtualization, so rendering performance is not the issue.

Let's say I have around 40 roles and 400 permissions, which means the UI needs to represent about 16,000 possible role/permission combinations

Is it considered acceptable for the backend to return the complete dataset in a single request if the client genuinely needs the whole matrix?

Or is this generally considered an anti-pattern?

I'm mainly interested in backend scalability:

  • Memory usage
  • Serialization costs
  • Network transfer
  • Response size
  • Overall scalability as the number of roles and permissions grows

I'm curious what patterns you've seen in production systems for this type of UI.


r/softwarearchitecture 18h ago

Tool/Product Every architecture diagram is either useless or unreadable, so I made one you zoom into instead

Post image
49 Upvotes

Architecture diagrams have two failure modes. Three boxes that say nothing, or a hairball of two thousand nodes that says everything at once, which is also nothing. Both get screenshotted for a deck and never opened again.

Neiither answers the question you actually have in a new repo, which is not "what connects to what". It is "where am I, and does this matter".

So I built the other thing. A map you zoom into

The whole repo is one card. Zoom in and it opens into layers, then folders, then files, then functions. It is continuous, like a map app going from country to street. No level dropdown, no reload, no re-layout between steps, so you never lose your place.

The key thing: you never look at the whole repo at once. At any level you see a handful of cards, and you dig deeper only where it matters. It is something you navigate, not one dense picture you stare at. And it is not drawn by hand. It is generated from the code and git history and stays current as you commit, so it cannot hallucinate a module or drift from reality.

What makes it readable:

Cards are sized by how the system runs, not by line count. Entry points, what everything routes through, what churns. The code you should look at first is physically the biggest thing on screen.

Each card carries a health dot, rolled up so a folder reflects everything inside it. You find the bad neighbourhood from orbit and then dive.

Edges only appear when you hover a box, and only that box's edges, curved around the other cards rather than through them. That single decision is most of the difference between a map and a hairball.

The performance answer, for anyone who assumes this dies at scale: you never draw the whole repo. Anything off screen or smaller than a couple of pixels is skipped, so a frame draws a few dozen cards whether the tree has 2,000 nodes or 10,000. Cost stops scaling with repo size, which was the point.

It is part of an open source tool I maintain called Repowise, AGPL, runs fully local. Gif is it mapping its own repo.

Link: https://github.com/repowise-dev/repowise

Edit: no, it's not just C4. C4 is four static diagrams you draw and maintain by hand. This is generated from code and git history, one continuous zoom, with card size from centrality and churn, plus co-change and health that C4 has no concept of

Edit 2: Thanks for all the feedback, the Structurizr DSL point came up enough that I am adding it as an export format, emitted as a model file you include from your own workspace so your views and styles stay yours and never get overwritten on re-index


r/softwarearchitecture 11h ago

Discussion/Advice Doing an MSc in Software Architecture & Design

11 Upvotes

Engineer for years but always felt a gap. I build things that work but I want to properly understand design and architecture, not just do it by instinct. Also feel a degree never hurts and will help professionally too.

Got accepted into a part-time online MSc in Software Architecture & Design while working full time. Anyone done something similar? Worth it?


r/softwarearchitecture 46m ago

Article/Video Space was the final frontier. For agentic AI, I suspect trust is the next one.

Thumbnail open.substack.com
Upvotes

I am sharing an essay I recently published on Trust . How human trust operates and how this translates or not wrt digital trust. Architecturally, there are a some pertinent considerations that I dive into. If you have the time and interesting in human to digital trust please have a read.


r/softwarearchitecture 1d ago

Article/Video When code review becomes more expensive than writing the code

Thumbnail shiftmag.dev
68 Upvotes

r/softwarearchitecture 8h ago

Discussion/Advice How are you revising system design concepts?

Thumbnail
3 Upvotes

r/softwarearchitecture 7h ago

Tool/Product MGO: What If Spring Boot and Go's Ecosystem Had a Baby?

Thumbnail
2 Upvotes

r/softwarearchitecture 7h ago

Discussion/Advice How do you handle foreign keys with partitioned tables?

2 Upvotes

Hello,

I have usually seen people recommend not creating foreign keys to partitioned tables and instead relying on application-level validation.

Personally, I think that's a horrible idea.
Once invalid references start leaking into the database, they're difficult to detect and even some system it is impossible to clean up.
No matter how many safeguards exist in the application, a future code change, migration, or overlooked edge case can still introduce inconsistent data.

My preferred approach is to keep an unpartitioned table that owns the IDs replica and use that as the foreign key target for related tables, while the partitioned table stores the actual data.

Has anyone else used this pattern? Are there other approaches that preserve referential integrity without introducing too much complexity?


r/softwarearchitecture 15h ago

Discussion/Advice Curious how teams handle telemetry

5 Upvotes

What is your go-to setup for instrumenting analytics/telemetry?

At what point into a project is proper telemetry implemented?

Does observability tend to be implemented too soon, or too late? What are the side effects of mis-timing its implementation?


r/softwarearchitecture 22h ago

Discussion/Advice Theory vs. Practice to Improve as a Dev

12 Upvotes

Context:

Lately, I've been thinking a lot about how to improve as a developer. Because of this, I started talking to coworkers, book authors, highly experienced devs on Reddit, professors, and more. I reached the following conclusions, but I'd love to hear your thoughts. Keep in mind that the goal of this post is to see if I'm on the right track to level up as a professional.

What I learned from talking to others:

Every developer I spoke with followed a different learning path, and I never heard the same opinion twice. However, there is one thing everyone agrees on: practice is what matters most, far more than any theoretical resource. You need to actually work, question the "why" behind every decision, compare different solutions across different scenarios, and even put in extra hours of practice by building long-term personal projects. This is why I started working at quite a young age. Thanks to that, now that I'm almost graduated with a Computer Science degree, I already have several years of experience in the industry, where I've learned a lot.

This doesn't mean you shouldn't study, though. Personally, I'm just two courses away from graduating and I'm far from done studying, as I deeply believe that having a solid knowledge base helps you get much more out of your working hours.

My final conclusion:

While there doesn't seem to be an "ideal" learning path, I lean toward finishing my degree and supplementing it with extra knowledge in the area I'm currently most interested in: Software Architecture. That's why I look to get a high-level overview of different architectural patterns, software design patterns, solutions to common problems, etc., using resources that are easy to digest (like roadmap.sh, YouTube, courses, or books). The goal is to get familiar with the concepts, even if just superficially, so I know they exist.

If I ever need to apply a new architectural pattern that I haven't used before, I'll likely have to dive deeper into it at that moment—and that's totally fine, because that's the right time to do it. But I don't think it's important to read deeply into every existing pattern and concept from the start, because knowledge only sticks when you take it out of the theoretical framework and apply it to a project with real clients.

My question regarding this conclusion:

Does this approach of getting a high-level overview of concepts in my area of interest, and then diving deep only when I need to apply them, sound right to you? Or is it better to further strengthen my fundamentals first, keeping in mind that I've almost completed 5 years of university and have a couple of years of industry experience as a full-stack dev?


r/softwarearchitecture 1d ago

Discussion/Advice System design question for the backend engineers:

38 Upvotes

Cache invalidation is famously one of the hardest problems in computer science.

What is your absolute go-to strategy when you need strict consistency but cannot afford database latency?

Do you trust Write-Through, rely on short TTLs, or do you have a custom event-driven cache-busting mechanism that actually works? Drop your architecture patterns below!


r/softwarearchitecture 4h ago

Article/Video 🤔 SQL or NoSQL? ACID or BASE? Vertical Scaling or Horizontal Scaling?

Post image
0 Upvotes

r/softwarearchitecture 1d ago

Tool/Product Create Animated HLD Diagrams That Stay in Sync with Your Documentation

Post image
36 Upvotes

One thing that has always bothered me about architecture documentation is that diagrams usually end up as static images.

Whenever the architecture changes, you have to export a new image and replace it everywhere it's used. After a few months, the documentation is usually out of date.

So I built a diagram editor with a different workflow.

  • Create animated HLD (architecture) diagrams
  • Drag and drop components like services, databases, APIs, Kafka, Redis, etc.
  • Embed the diagram directly into documentation
  • Edit the original diagram later, and every embedded version updates automatically

The goal was to make architecture documentation easier to maintain instead of constantly updating screenshots.


r/softwarearchitecture 5h ago

Article/Video 🤔 SQL or NoSQL? ACID or BASE? Vertical Scaling or Horizontal Scaling?

Post image
0 Upvotes

r/softwarearchitecture 5h ago

Article/Video Why can DynamoDB handle millions of requests per second while a traditional database struggles? 🤔

Post image
0 Upvotes

r/softwarearchitecture 18h ago

Discussion/Advice How would you architect returns integration for an OMS?

Thumbnail
2 Upvotes

r/softwarearchitecture 1d ago

Discussion/Advice Team bonding activities for software architects that don't feel forced?

26 Upvotes

We've got a team of 11 software architects spread across platform, backend, cloud and security. Most days are architecture reviews, RFCs and whiteboard sessions, so everyone knows each other professionally, but not much beyond that.

Recently, we tried the happy hours and virtual trivia and attendance was decent, but nothing really carried into day-to-day collaboration. What helped was running architecture katas where mixed teams solved the same scaling problem and compared tradeoffs afterward. The discussions became noticeably more constructive in later design reviews.

Still, a few quieter architects rarely participate unless it's technical. Looking for team bonding ideas that feel natural, not like HR homework.


r/softwarearchitecture 1d ago

Discussion/Advice When does NoSQL/MongoDB actually win over Postgres in mature applications (beyond early-stage MVPs)?

58 Upvotes

I’m digging deep into data modeling trade-offs (specifically Document DBs vs Relational/Postgres).

Marketing materials and books always list the usual MongoDB wins:

  1. No-translation pipeline
  2. Flexible schema (Zerodowntime feature additions without DB migrations)
  3. Single-document atomic writes
  4. Built-in horizontal sharding

But in practice, most backend engineers I talk to favor "Default to Postgres".

When applications grow, handling schema evolution in application code (Schema-on-Read with if/else or defaults) creates its own maintenance nightmare/code rot.

On the flip side, Postgres handles online schema changes pretty well nowadays, and JSONB covers many flexible-schema edge cases anyway.

My question for senior/staff engineers running production systems:

  • Beyond early-stage startups that just want to build an MVP quickly, when did NoSQL genuinely save your architecture compared to a modern Postgres setup?
  • How do you weigh the Operational Overhead of SQL migrations (and potential lock risks at scale) against the Application Code Complexity of maintaining un-migrated NoSQL documents?

Thanks!


r/softwarearchitecture 19h ago

Discussion/Advice HirePro Proctoring: Continuous Recording or Event-Based Screenshots?

Thumbnail
1 Upvotes

I have a theory about how HirePro handles proctoring and wanted to know if anyone has looked into this before.

Does HirePro's screen-sharing feed capture screenshots only when JavaScript raises a flag (tab switch, focus loss, fullscreen exit, etc.), or does it capture screenshots continuously at around 1–2 FPS and analyze them for abnormalities?

Handling both webcam feeds and screen-recording feeds for 300+ students over a 1–2 hour assessment seems computationally expensive, so I'm curious how they scale this in practice.

I also inspected the HirePro browser extension and found that its code appears to primarily disable other extensions, re-enable them after the assessment, and report if any extensions are forcefully turned back on. I didn't find any webcam or screen-monitoring logic in the extension itself.

Has anyone analyzed HirePro's architecture or worked on a similar proctoring system? What is the most likely approach being used here?


r/softwarearchitecture 1d ago

Article/Video Aggregates, transactional outbox, idempotent commands: a DDD tutorial to build enterprise-grade production code

Thumbnail reddit.com
11 Upvotes

Since 2023 I have maintained a Go template that implements the tactical patterns end to end: validated entities, a Money value object, aggregates referenced by ID, repositories owned by the domain, CQRS-style command/query split, domain events via a transactional outbox, and race-safe idempotent commands. Everything is tested, including integration tests against a real Postgres database. Go is not always ideal for DDD, but I have shown some concepts as simply as possible.

I recently wrote a tutorial around it: https://sklinkert.github.io/go-ddd/

Code: https://github.com/sklinkert/go-ddd

It's one bounded context on purpose (teaching scope), and the FAQ is honest about when DDD is overkill. Curious how this community judges the aggregate boundaries and the trade-offs. The r/golang thread mostly debated folder structure, I'd rather argue about the model :)


r/softwarearchitecture 21h ago

Discussion/Advice Where should deterministic business logic live in an AI-powered Azure architecture?

Thumbnail
0 Upvotes

r/softwarearchitecture 1d ago

Tool/Product Free Mermaid Live Editor & Diagram Maker

Thumbnail moxiedocs.com
2 Upvotes

Released this recently for free, mini guide on Mermaid and free in-browser editor (with share capability from URL params) - all data local, no sign up required.


r/softwarearchitecture 1d ago

Discussion/Advice Monolithic designed auth solution

2 Upvotes

I am trying to learn modular monoliths and I want to use this auth solutions for repetitive use for my applications.

If I asked you to convert the repo linked, into monolithic patterns, how would you do it for app/.

Repo: https://github.com/auth0-blog/auth0-rbac-fga-fastapi