Transforming Blocket with Modern Software Solutions

Stockholm Code Group’s work with Blocket’s transformation showcases the effectiveness of using modern software architecture patterns and technology choices. By implementing an efficient, scalable and maintainable tech stack, they not only ensured that Blocket could maintain their position as market leader but also attract top tech talent.

Background

Faced with increased competition from emerging digital marketplaces, Blocket recognized the need to upgrade their technical infrastructure and software architecture not only to retain their market position but also to enhance the overall product and customer experience. The goal was to modernize the technical platform to improve product development processes while ensuring future scalability and operational efficiency. All without disrupting ongoing business operations.

The Solution

Blocket appointed Stockholm Code Group to drive the replacing a large, monolithic legacy system with new microservices. The team from Stockholm Code Group, which included architects, developers and a product manager, collaborated closely with Blocket from the initial planning phase to the final implementation.

The monolithic architecture was methodically dismantled and the functionality was carefully replaced with well-defined microservices with clear boundaries. Key features developed included an ad insertion service, ad import flow, payment flow with card payments integrations as well as handling of invoices and credits. Additionally, a new offering for company users and a comprehensive back-office system were introduced to enhance Blocket's customer service capabilities.

The platform was built using a modern, state-of-the-art tech stack, including Kotlin, Kubernetes, PostgreSQL Aurora, ElasticSearch, and AWS Cognito. It features an event-driven architecture powered by Kafka, with event sourcing facilitated by DynamoDB streams for change data capture.

The consultants from Stockholm Code Group truly stand out. They contribute with remarkable technical expertise and seniority, and are dedicated in delivering effective and modern solutions. Their efforts have been crucial for our future success of Blocket!
— Niklas Lager, CTO, Blocket

The Result

The new platform significantly enhanced Blocket's technical scalability, maintainability, and efficiency. The solution enabled Blocket's product teams to continue their focus on product development and business growth, with enhanced capabilities to adapt to market changes swiftly. The integration of modern technologies ensured that Blocket could maintain its leadership position in a highly competitive digital marketplace.


Tech Choices and Benefits

Kotlin: This modern language enhances productivity and system robustness with its concise syntax and improved null-safety, reducing runtime errors significantly.

Spring Boot: Facilitates rapid development of microservices with automated configuration and an extensive suite of development tools, streamlining and improving development efficiency.

Kubernetes: As the leading container orchestration platform for deploying and managing containerized applications, it ensures that the services are scalable, resilient, and efficiently managed.

PostgreSQL Aurora and DynamoDB: These databases offer reliable, scalable, and efficient data storage solutions, optimizing performance and reducing maintenance overhead.

ElasticSearch: Enhances user experience by providing rapid, flexible search capabilities that scale with user demand.

AWS Cognito: Secures user authentication processes, improving security while allowing developers to focus on core functionality.

Kafka: The event-driven architecture powered by Kafka enables asynchronous communication between microservices, enhancing the scalability and resilience of the system.

GraphQL: Acts as an efficient, flexible interface between frontend applications and backend microservices, streamlining data queries and interactions.


Onion Software Design, AKA Hexagonal Architecture or Ports-and-Adapters

Incorporating Onion Software Design, Blocket’s new software architecture prioritizes clean separation of concerns and modularity. The core of this design are the domain models and business logic, surrounded by layers of interfaces and infrastructure components. This approach allows for cleaner, more maintainable code, and facilitates the creation of easily testable and scalable applications.