CLASSIFIED

BAHRUL ROZAK

Full Stack Web Developer | Technical Learning Facilitator

Cimahi, West Java, Indonesia
bahrulrozak1453@protonmail.com

CLEARANCE LEVEL: TOP SECRET
STATUS: ACTIVE

TECHNICAL REPORT

Implementing Microservices Architecture at PT IMS

June 15, 2025 8 min read 1,245 views

Field Agent: Bahrul Rozak

Operation Codename: I-Financing V5

Location: PT IMS, Tangerang

Duration: July 2025 - October 2025

Mission Briefing

This report details my covert operation to implement microservices architecture for the I-Financing V5 Base system at PT IMS. The mission required deep technical expertise in Angular, .Net Core, and microservices patterns while collaborating with a cross-functional team under tight deadlines.

Technical Approach

The existing monolithic architecture was showing signs of strain under increased user load and feature complexity. My team was tasked with designing a scalable solution using the following technologies:

  • Angular 15 for frontend
  • .NET Core 6 for backend services
  • Docker for containerization
  • Kubernetes for orchestration
  • RabbitMQ for message brokering
  • MSSQL for data persistence

Architecture Diagram

Microservices Architecture Diagram

Key Challenges

1. Service Decomposition

Breaking down the monolith required careful analysis of domain boundaries. We identified these core services:

// Example service definition in .NET Core
public class LoanService : ILoanService
{
    private readonly ILoanRepository _loanRepository;
    private readonly IMessageBus _messageBus;
    
    public LoanService(ILoanRepository loanRepository, IMessageBus messageBus)
    {
        _loanRepository = loanRepository;
        _messageBus = messageBus;
    }
    
    public async Task ProcessApplication(LoanApplication app)
    {
        // Business logic here
        await _loanRepository.AddAsync(app);
        await _messageBus.PublishAsync(new LoanApplicationReceived(app.Id));
    }
}

2. Cross-Service Communication

We implemented both synchronous (HTTP) and asynchronous (message-based) communication patterns:

Communication Patterns Used
Scenario Pattern Technology
Immediate data needs Synchronous HTTP/REST
Event notification Asynchronous RabbitMQ
Data consistency Saga Pattern MassTransit

3. Distributed Transaction Management

Implementing the Saga pattern was critical for maintaining data consistency across services:

// Example Saga implementation
public class LoanProcessingSaga :
    MassTransitStateMachine<LoanProcessingSagaState>
{
    public State Submitted { get; private set; }
    public State UnderReview { get; private set; }
    public State Approved { get; private set; }
    
    public Event<LoanApplicationSubmitted> ApplicationSubmitted { get; private set; }
    
    public LoanProcessingSaga()
    {
        InstanceState(x => x.CurrentState);
        
        Initially(
            When(ApplicationSubmitted)
                .Then(context => Log(context))
                .TransitionTo(Submitted)
                .Publish(context => new BeginUnderReview(context.Saga.CorrelationId))
        );
        
        // Additional state transitions...
    }
}

Operational Results

The migration to microservices yielded significant improvements:

45%

Reduction in deployment failures

3.2s → 0.8s

Average response time improvement

99.95%

Uptime achieved

Lessons Learned

  • Domain analysis is critical: Proper service boundaries prevent costly refactors
  • Observability is non-negotiable: Invest in logging, metrics, and tracing from day one
  • Team alignment matters: Microservices require cultural shifts in development practices
OPERATIONAL SECURITY NOTE: Certain implementation details have been redacted to protect proprietary methodologies.
Microservices .NET Core Angular Architecture Saga Pattern
Bahrul Rozak

BAHRUL ROZAK

Full Stack Developer with expertise in microservices architecture, system design, and performance optimization. Currently serving as Technical Learning Facilitator at CODEPOLITAN.

View Full Profile
FIELD DEBRIEF (COMMENTS)
Comment system requires TOP SECRET clearance. Authentication required.