• bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10
  • bids: 0 +10
  • bidders: 0 +10
  • completed auctions: 0 +10
  • next fall of the hammer: 0 ending now
  • sold lots: 0 +10

24.03.2025

Why we are transitioning to Microservices

... and why it might not be right for you. In this post, we’ll share why we decided to transition, the challenges we faced, and how to decide if microservices are the right choice for your use case.

written by Christian Prohinig

At AURENA Tech, our journey to microservices was driven by necessity, not trend. I recently had the opportunity to share our experience during the Lakeside Talks Meetup series, which highlighted the practical lessons we learned along the way. While our monolithic architecture worked well in the early stages, its limitations became clear as we scaled. These included inefficiencies in scaling individual components, increased deployment risks due to tightly coupled modules, and delays in adapting to new business needs. In this post, we’ll share why we decided to transition, the challenges we faced, and how to decide if microservices are the right choice for your use case.

Picture generated by ChatGPT

Why We Decided to Transition to Microservices

Our monolithic architecture faced challenges as we grew. Scalability bottlenecks arose because components could only scale together, even if only one needed it. As an example, an overloaded notification module would require the whole system to scale, resulting in many idling components and wasted resources. Deployments became risky, as changes to one module had the risk of affecting others. Adding new features required significant rewrites and delayed our ability to adapt.

Simplified illustration of original architecture

Our plan is not to completely discard the monolith. Instead, we are reducing its size over time by extracting services where flexibility and scalability are most needed. This approach let us retain stability in parts of the system that work well, ensuring critical functionalities continue to operate reliably. By minimizing disruption to core processes during the transition, we are able to focus on incrementally modernizing high-impact areas without jeopardizing overall system performance.

When to Stick with What You’ve Got

Microservices aren’t always the best solution. If your team lacks experience or workforce, managing multiple services and APIs can become overwhelming. If your current architecture is stable and meets your needs, transitioning may be unnecessary. Additionally, systems requiring strong transactional consistency may struggle with the complexity of distributed systems.

Picture generated by ChatGPT

How We Made It Work

Our transition is gradual. We started with high-impact bottlenecks and new business requirements which could be implemented as dedicated services. To piece it all together, we introduced Kafka for resilient messaging. Kafka acts as a distributed message broker, enabling services to communicate asynchronously. It ensures no data is lost, even if a service is temporarily unavailable, and supports scalable, fault-tolerant communication across our system. Extracting modules one at a time allowed us to refine our approach while the monolith continued handling stable components.

Simplified illustration of original architecture

The Results

Microservices brought clear benefits. High-usage services now scale independently, development cycles are faster, and system resilience has improved by isolating failures to individual services. Meanwhile, the streamlined monolith manages stable components effectively and can be improved incrementally.

Are Microservices Right for You?

Ask yourself if scalability, deployment, or development bottlenecks are holding you back. Do you have the expertise to manage distributed systems involving dozens of components? For us at AURENA Tech, microservices were essential. For others, a well-tuned monolith may still be the better choice.

Article by
Christian Prohinig

“Enabling the team to deliver high quality software and great products for our users” is what motivates Backend Lead Christian.

More articles

18.12.2024

Angular Graz Meetup: Inspiration from leading minds in the Angular world

In building any thrilling experience, it’s important to have the best tools for the job. Patrick and Martin from our Engineering team attended the latest Angular Meetup in Graz to scout some more “power tools” for our development toolbox.

13.11.2024

Testing United Conference: Unleashing the Power of AI in QA

QA Engineer Iana and her colleague Sara report their insights from the latest Testing United Conference with the main topic “AI Augmented QA".

25.10.2024

Art Director Veronika Micheli joins AURENA Tech

Welcome, Veronika: Our new Art Director is here to elevate AURENA's corporate design.

21.08.2024

AURENA Tech Team Event 2024

Three days of fun, culinary delights, and new experiences: This year, our AURENA Tech Team Event took us to some incredible locations throughout Styria.

19.06.2024

AURENA Tech strengthens its Backend team

Martijn Lammaing joins as Senior Backend Engineer to further enhance the AURENA auction platform.