Liked the point about starting with understanding instead of jumping into a rewrite. Nice reminder that patience usually wins with legacy stuff. Makes me wonder in what ways small teams handle this differently from big ones.
️ From Spaghetti to Scalable: Refactoring a Legacy .NET App Architecture
2 Comments
@[Henry Paul] Thanks! Glad that point landed. Small teams often handle legacy refactoring with more restraint — they usually don’t have the luxury to rewrite everything, so they focus on incremental improvements and building understanding first. Larger teams sometimes feel more pressure to “modernize” quickly, which can lead to premature rewrites if they’re not careful. Patience really pays off either way, but small teams tend to feel it more directly.
Please log in to add a comment.
Thanks for sharing ..
What is one mistake you have seen teams make when trying to refactor a legacy system like this ?
Curious, how do you think about Hangfire versus a broker like Azure Service Bus or RabbitMQ for background work
In what situations would you still pick Hangfire, and when would you move to queues instead.
@[Spyros] About Hangfire vs. a broker like Azure Service Bus / RabbitMQ:
When I would still pick Hangfire
A monolith or modular monolith
Low volume background tasks (emails, cleanups, report generation)
Jobs tied closely to business logic
Teams that want fast iteration and minimal infrastructure
Temporary or transitional workloads during a refactor
When I’d move to queues
You’re splitting the system into services
Tasks need to be processed independently of the web app
You need scale-out consumers
You need robust failure handling + message durability
You want event-driven architecture
Throughput or workload patterns are unpredictable
Hangfire is a great tool for internal background jobs inside one app.
Service Bus / RabbitMQ is the right tool for system-level communication and scaling.