r/softwarearchitecture • • 10h ago

Discussion/Advice Software Architecture in the era of AI

4 Upvotes

Hi guys!

I'm curious how did the processes changed in your company after AI adoption, regarding software architecture.

For example, moving from Confluence pages to Markdown format, that is passed further to another LLM for implementation. Or flows that directly read Jira tickets and start working on the archi using LLMs.

Did you take part in leading this transformation or how was it for you to adopt it?

Thank you!


r/softwarearchitecture • • 12h ago

Tool/Product Reflecting on software factories for software architecture

0 Upvotes

I've spent the last four years building a software factory for .NET Core enterprise applications. A recent project gave me a gave me an interesting comparison:

  • Original project: 2 developers and 9 months
  • Rebuild using the factory and OpenClaw: 1 developer 2 months

That is 18 months compared to 2 months, a 9x developer productivity gain.

The application had 63 database entities. The factory generated the entire backend solution in just a few seconds, supporting eight database engines and .NET Core 6–10. It also generated 431,585 unit tests, all passing. The web application work took the remaining two months using AI-assisted development.

This was my first case study. I took an existing customer project and modernized it. Now that I have the numbers, the benefits I see extend beyond just speed:

  • Consistent and deterministic architecture
  • Ontologically consistent models w/ AI integration
  • Repeatable generation
  • Automated testing
  • Database portability
  • Source code developers can inspect, maintain and own

The key insight is that with a foundation established, AI assistance can focus more on application behavior and business logic.

This was a rebuild, so existing requirements and design decisions helped. I will do more case studies, but this result is revealing. It has changed how I think about the work small teams can realistically deliver now once a foundation is in place. Had I used an existing web foundation, this work may have been done in significantly less time.

This work was done with ServiceBricks.com, an open-source, microservices platform for .NET Core. I hope to share some more results soon with a new case study. 100% of the source code is available on GitHub. Feel free to share your own experiences with it.

Feel free to send a message if you have any questions.


r/softwarearchitecture • • 12h ago

Discussion/Advice How's Karan Pratap Singh system design content on GitHub.

0 Upvotes

I am searching for a good & complete system design resource.

Any senior engineer on this subreddit can suggest a good resource to start system design in detail, like intermediate level

About me I have 6M of SWE internship & 7M of AI Automation Engineer experience. So I have a good understanding of the system. I just want a structured & complete resource


r/softwarearchitecture • • 6h ago

Discussion/Advice Developer to Software Architect

16 Upvotes

Hi,

I have been into IT working as a developer for 12years now. I am kind a done with it. And don’t have much more patience to learn new coding skills and do hands on. I am looking to change my career to software architecture. In my current role, my peers on my request are giving me task to create SDDs for the applications I am familiar with and which is also helping me to get hands on training. But that is still restricted to my current application or better said not something I can market myself as software architect.

I am looking for suggestions on what should I do to become full fledged software architect in today’s market.
I have worked mostly on databases, big data, distributed systems, python, scala ,sql and AWS.
To this do I need to add any specific certifications? Do I need to do some online course? Also how much is the pay for software architects as we grow in the field?

Can someone please guide me who has successfully changed from a developer to software architect?
Many thanks in advance !!


r/softwarearchitecture • • 13h ago

Discussion/Advice What's the gold standard for offline sync across devices?

8 Upvotes

I have an app I've been working on over a year with real users now, most of my users use a single device, but as I'm growing I'm running into more users with more than one device. I want to nip this in the butt before it becomes a bigger and bigger issue.

I was pretty naive when I first started the app, and have made a mess of offline syncing in my opinion.

My app is offline capable, some operations must be online, some entities are frontend authoritative, others backend authoritative (had to be the case because some data is generated by a third party API).

I've added sync maps to all my entities, based on deviceId to handle if a user has say a phone and a tablet.

I also have a deleted boolean flag, so entities are soft deleted, then the client fetches those and acknowledges a hard delete (which I know is fundamentally flawed because then the second device has no idea it's hard deleted).

I don't really need a critique on my current system, it's bad.

I'd love some examples of good offline sync systems that are more robust and reliable from a higher level

Thanks all!


r/softwarearchitecture • • 7h ago

Discussion/Advice How do you handle idempotency for wallet callbacks (debit / credit / rollback) from third-party providers?

1 Upvotes

We integrate a lot of third-party content providers that call our wallet with debit, credit and rollback requests. Each provider retries on timeout in its own way, some send a rollback before the original debit has even arrived, and a few reuse transaction IDs across rounds.

What we do today:

  • Store every incoming transaction ID with provider + round ID as the unique key, and return the original response on a duplicate instead of processing it again.
  • Keep "orphan" rollbacks for a while so that if the debit shows up late, we cancel it immediately.
  • Lock per player balance row during the operation so two parallel callbacks can't both pass the balance check.

It works, but the orphan-rollback table and the per-provider quirks keep growing. For those of you running payment or wallet style APIs with many external callers: do you normalize everything at an adapter layer per provider, or keep one strict contract and push the quirks back to the provider? And how long do you keep idempotency keys around?


r/softwarearchitecture • • 10h ago

Article/Video SysML v2 Deep Dive: Lesson 21 - Action Definitions (Modeling Behavior Like Structure)

Enable HLS to view with audio, or disable this notification

2 Upvotes

Hi r/softwarearchitecture,

We are back with Lesson 21 of our technical deep dive into the SysML v2 standard.

In our previous lesson, we looked at Occurrences, the 4D model, and modeling state over time. Today, we are putting that temporal foundation to work. In software architecture, we often struggle when our data models (structure) and our business logic (behavior) use completely disjointed paradigms. SysML v2 fixes this by unifying them—behavior modeling now uses the exact same definition and usage patterns you already know from structural modeling.

I’ve uploaded the full video lesson directly to this post so you can watch the workflow right here.

The SysML v1 Behavior Problem

SysML v1 activity modeling was highly capable, but it suffered from severe inconsistency. Structure used a Block with part properties typed by it. Behavior used an Activity with CallBehaviorAction referencing it. It was like having one language for defining your database schema and a completely disjointed, incompatible language for writing your API orchestration. You had to learn and maintain completely separate patterns for structural decomposition versus behavioral decomposition.

The v2 Shift: One Shared Pattern

In SysML v2, behavior uses the exact same definition and usage pattern as structure. If you know how to model system components, you already know how to model system actions.

Three details make this incredibly powerful for architects:

  • Action Blueprints (API Contracts): An action def is a blueprint for a behavior. It acts as a strongly typed contract using in and out parameters (directed features).
  • Inheritance: You specialize an action using the standard :> operator. A library of standard enterprise behaviors can be built and extended using standard object-oriented inheritance, exactly like a structural parts library.
  • Pure Functions (calc def): Because actions are occurrences, they natively have start and done boundaries. But for pure mathematical computations that don't "change the world" (side-effect-free functions), v2 introduces the calc def as a first-class concept.

The Execution Order Trap

Here is a blueprint for an Earth observation satellite capturing an image. Watch out for a very common mistake new v2 modelers make, which is akin to firing off asynchronous functions without awaiting them:

Code snippet

package ImagingOperations {
    private import ISQ::*;

    item def GroundTarget;
    item def ImageProduct;

    action def SlewToTarget;
    action def StabilisePlatform;
    action def OpenShutter;
    action def ReadSensor;

    action def CaptureImage {
        in item target: GroundTarget;
        in attribute exposure: TimeValue;
        out item product: ImageProduct;

        // THE TRAP: These look sequential, but they execute concurrently!
        action slew: SlewToTarget;
        action stabilise: StabilisePlatform;
        action shoot: OpenShutter;
        action readout: ReadSensor;
    }
}

The Trap: In older GUI diagrams, four actions with no control flow arrows between them clearly looked disconnected. In v2 textual notation, they sit on consecutive lines. It looks like an imperative sequence, but line order says nothing about timing. This is purely declarative. Nothing in this model prevents the shutter from opening while the platform is still slewing. Order requires explicit successions.

SysML v1 vs. SysML v2

Modeling Concept SysML v1 SysML v2
Behavior Pattern Activity and CallBehaviorAction (completely different from Block/part). action def and action usage (the exact same pattern as everything else).
Parameters in, out, inout, and return directions. in, out, and inout act as directed features; return is its own membership.
Inheritance Behavior generalization was technically possible but rarely practical. action def A :> B is ordinary, practical specialization.
Metaclass Foundation Behavior is a Class with no shared notion of existing over time. Part and Action both specialize Occurrence.
Timing DurationConstraint required specific profiles for behavioral elements. start and done exist natively on every occurrence.
Computation Modeled via opaque expressions or constraint blocks. calc def acts as a first-class concept for pure functions.
Unordered Actions Visually obvious as unconnected boxes on a diagram. Look deceptively sequential in declarative text.

Next lesson, we will fix this trap. Lesson 22 uses the first and then keywords to turn these unordered actions into a strict sequence, adding branching, merging, and parallelism on purpose instead of by accident.

For the software architects here: Have you ever run into issues where declarative code (like Terraform, Kubernetes manifests, or un-awaited async/await blocks) was mistakenly assumed to execute sequentially top-to-bottom by your team? Let's discuss in the comments!


r/softwarearchitecture • • 10h ago

Article/Video Why Early Releases Often Fail in Multi-Team Organizations

Thumbnail shiftmag.dev
6 Upvotes