The Communication Backbone for Kramp Hub’s Microservice


By Haluk Tiras

Today, we’re excited to share a major milestone in our journey. Our contract proto repository namely “kramphub-apis” has reached its 1000th version. Whether you’re a tech enthusiast or just curious about modern software, we invite you to join us in celebrating this achievement.

Our story begins with a simple idea: the need for a single place to define how different services talk to each other. In the early days, we struggled to coordinate communication between microservices, a crucial part of modern software. Therefore, “kramphub-apis” repository was created to make the communication smoother. With each update, we aimed to make it even better at connecting services seamlessly.

Following this significant milestone, we’d like to share some valuable lessons we’ve learned along the way. Here’s a glimpse of the lessons that have shaped our path.


The Power of gRPC and Google Pub/Sub

At the core of “kramphub-apis” lies the potent combination of gRPC and Google Pub/Sub. These technologies have been instrumental in facilitating both synchronous and asynchronous communication between our microservices.

At Kramp Hub, synchronous communication, powered by gRPC, is the engine behind real-time interactions between services. Its efficiency and performance have transformed the way our applications exchange data. With gRPC, we can define service contracts in a language-agnostic manner, ensuring that services communicate seamlessly, irrespective of the languages they are implemented in.

On the other hand, asynchronous communication, driven by Google Pub/Sub, has unlocked new possibilities in our architecture. It allows us to decouple services, giving them the flexibility to scale, and enhancing reliability. Pub/Sub’s scalability and reliability have made it a cornerstone of our architecture, particularly in scenarios where real-time interactions are not required.

These technologies aren’t just tools; they are the building blocks of innovation. By embracing gRPC and Google Pub/Sub, “kramphub-apis” has positioned itself as an enabler of modern, cloud-native, and microservices-based architectures.

As we continue this celebratory journey through the evolution and impact of “kramphub-apis,” we invite you to explore how this repository has become the central nervous system of our organization’s software development efforts. In the upcoming sections, we will delve deeper into its magic pipeline, collaboration across teams, and the invaluable contributions of our talented developers.


The Power of kramphub-apis Pipeline

One of the key strengths of “kramphub-apis” lies in its seamless integration with our development pipeline. This pipeline is the magic wand that brings our service communication contracts to life, making them readily available to developers in their preferred programming languages. 

Imagine a scenario where developers need to establish communication between microservices written in Golang and those using JVM-based languages like Java and Kotlin. The challenge here is not just defining the contracts but also ensuring that each microservice can effortlessly consume them. This is where our pipeline steps in, streamlining the entire process.

Here’s how it works: 

1-Contract Creation: Developers start by defining service communication contracts within the “kramphub-apis” repository. These contracts act as the blueprint for how different microservices will interact with one another. 

2-Automated Code Generation: This is where the magic happens. The pipeline takes these contract definitions and automatically generates Go files for Golang microservices and Java classes for JVM-based microservices. It ensures that each language receives code tailored to its requirements, eliminating compatibility issues. 

3-Seamless Integration: With the generated code in hand, developers can seamlessly inject it into their respective microservices. This integration is remarkably smooth, as the code aligns perfectly with the contract definitions, making it effortless for developers to adopt. 

4-Efficiency and Consistency: The pipeline doesn’t just save time; it ensures consistency across the board. Every microservice that relies on “kramphub-apis” contracts benefits from the same high-quality, error-free code. This consistency is a game-changer, especially in a complex microservices ecosystem.


Fueling Innovation and Collaboration 

The power of the “kramphub-apis” pipeline extends beyond its technical capabilities. It’s a catalyst for innovation and collaboration within our development teams. By automating the generation and integration of service communication code, developers can allocate more time to crafting innovative solutions and refining user experiences. 

Moreover, it’s a unifying force within our organization. Teams working on various domains can come together, confident that the contracts they define will seamlessly integrate with other services. This synergy has led to the birth of groundbreaking features and products, all fueled by the power of effective communication. 

In conclusion, “kramphub-apis” is not just a repository; it’s a symbol of our commitment to innovation and efficient communication in the ever-evolving landscape of microservices. As we celebrate its 1000th version, we reflect on the journey that has brought us here. Stay tuned for the new features that Kramp Hub will bring to life by creating contracts and collaborating with the help of the “kramphub-apis” repository and its pipeline. And remember, this journey is only the beginning. Explore more about our endeavors at Kramp Hub through the other articles on our tech kitchen website.


Acknowledgment to the valuable contributions of Jona Derksen, who provided significant support and assistance during the development of this article.