This is an example portfolio. Create yours free

Migrating a Monolith to Microservices

Breaking apart a 500K-line Django codebase into domain-specific Go services.

Migrating a Monolith to Microservices
ArchitectureGoBackend
**Project Overview:** A comprehensive case study demonstrating my approach to *migrating a monolith to microservices* as a Senior Software Engineer.

Context

Our core Django monolith was taking 45 minutes to deploy, and teams were stepping on each other's toes daily. Database locks were causing production incidents.

Architecture

I led the design of an event-driven architecture using Kafka. We established clear bounded contexts and began strangling the monolith by routing traffic through an API gateway.

main.go
// A simplified example of our new Go-based routing service
package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/api/v2/orders", handleOrders)
	http.ListenAndServe(":8080", nil)
}

func handleOrders(w http.ResponseWriter, r *http.Request) {
	// Event-driven logic here...
	fmt.Fprint(w, "Orders service proxy")
}
-85%
Deploy Time
99.99%
Uptime

The Execution Strategy

To tackle this challenge, I relied on a combination of deep research, iterative development, and tight feedback loops with stakeholders. We moved quickly to validate our core assumptions before scaling the solution.

Gallery image 1
Gallery image 2

Like what you see?

This is just an example, but your potential is real. Join Foliad and start building your professional portfolio today.

Create your free portfolio