With rising multi-cloud strategies and the growing complexity of AI applications, open source frameworks like Gofr.dev aim to simplify microservices development and cloud integration. In an interview with OSFY’s Yashasvini Razdan, Talvinder Singh, Co-founder at zop.dev and Aryan Mehrotra, Maintainer at gofr.dev explained the challenges faced while building microservices architecture and how open source frameworks like Gofr are mitigating them.
Q. What market trends have influenced the need for frameworks like Gofr.dev?
A. The increasing use of cloud-native technologies, such as containers and serverless computing, has heightened the need for specialised observability tools for monitoring the performance of distributed systems. Organisations require real-time insights into their applications and infrastructure to maintain optimal performance and quickly address issues. Frameworks with integrated observability provide the necessary visibility to monitor system health and user interactions continuously. The emphasis is on code consistency across the codebase, for better code quality and maintainability. To do so, they are reducing boilerplate code for faster development cycles, allowing businesses to bring applications to market more quickly.
Q. What challenges do developers face in managing large-scale microservices architecture?
A. Microservices architecture allows different functionalities of an application to run independently, which is a huge advantage. However, as the number of microservices grows, managing them becomes quite complex. Developers often face challenges ensuring uniformity in how all the components connect and communicate with each other.
Managing different microservices across multiple environments—production, staging, and development—tracking dependencies, maintaining functionality, and ensuring seamless connectivity across this web of services can overwhelm even the most experienced teams. Building microservices involves a large repetitive effort, as most existing frameworks were not initially designed with microservices in mind. Instead, they were adapted to support them later.
Q. What specific features of Gofr.dev make it suitable for simplifying microservices development?
A. Gofr was built with microservices as its core focus. The design principles and implementation of Gofr are microservice-friendly from the ground up. Developers only need to focus on the business logic, while Gofr ensures that all microservices are connected, databases are integrated through configuration, and connections are managed automatically. A 200 line-task in other frameworks can be done in 50 lines with Gofr! Many elements, such as connecting to additional services or bootstrapping a new service, are inherently built into the framework, saving developers time and effort.
For instance, when a service sends a request to another, Gofr checks whether the service and its database are operational, and the connection is functional. It then ensures the request is processed as intended. If something goes wrong, Gofr halts retry attempts until the issue is fixed, preventing unnecessary errors.
Q. Can Gofr do the same in dynamic environments?
A. Yes, Gofr can propagate updates across multiple microservices effortlessly. If an issue arises, updating the Gofr framework version can resolve the problem across all connected services without requiring additional manual effort. It offers real-time visibility into request flows and provides tools for making instant changes to metrics and logs. These updates can even be done in live production systems, saving significant time and effort by eliminating the need to restart applications. Developers can see how requests flow through the entire microservices architecture. This real-time insight into metrics and logs ensures that any issues are identified and resolved quickly. This capability is especially important for production-grade systems, where uptime and performance are critical.
Gofr.dev is an open source framework purpose-built for microservices. It has observability, dependency management, and other essential features integrated into its core. ZopDev is a cloud-neutral cloud management tool that simplifies managing cloud deployments, whether it’s a single application, multiple applications, or hundreds of microservices across various clouds. It provides a unified interface to manage deployments, configurations, and operations while enabling seamless migration to any cloud, unified observability, and cost management. For instance, a developer can continue using Gofr.dev within AWS, as they always have, without involving ZopDev. However, if the organisation decides to optimise costs, or gain centralised visibility into its cloud operations, ZopDev steps in as the unified platform that simplifies these operations. |
Q. What kind of advantages does Gofr.dev offer to developers?
A. Gofr.dev offers numerous advantages, even for those who are not Go developers. It is incredibly fast, offers unmatched observability and allows developers full control over how they want to build their applications. Even someone who is not a programmer can look at the code and understand what is happening.
Features like tracing, logging, and metrics are built into the framework as a standard, not added as an afterthought. This unified approach ensures that logs and metrics from all databases and services are readily available. This stems from the fact that Gofr.dev was initially designed for enterprise-level applications. Its enterprise-grade standards are baked into the framework rather than bolted on later. This makes Gofr.dev not just a development tool but a comprehensive solution for building and managing robust applications.
Q. Is the open sourcing of Gofr.dev an effort to encourage more developers to use Go as a programming language?
A. Yes, that is certainly one of our goals. Go is a fantastic language, but it does not receive the widespread recognition it deserves. By creating and open sourcing Gofr.dev, we aim to demonstrate Go’s potential and encourage its adoption among a broader audience. Our ambition is to make Gofr.dev the de facto framework for Golang-based microservices.
Open sourcing is not a small task and definitely not just about making the code publicly available. It involves more than just uploading the code to GitHub. It requires continuous effort to ensure that the framework remains relevant, usable, and widely adopted. Gofr.dev is our way of propagating the benefits of Go and helping the language reach its full potential.
Q. How do you plan to make Gofr.dev the ‘de facto standard’?
A. When we say ‘de facto standard’, we do not mean through certifications or formal endorsements but rather by becoming the natural choice for developers. Achieving this goal requires staying grounded, listening to the community, and being highly responsive to their needs.
One of our upcoming initiatives is to release templates for common use cases. Today, Gofr.dev allows you to build any application from scratch. However, we aim to make life even easier by providing ready-to-use templates for SaaS applications such as landing pages, payment pages, and basic connections, and templates with features for product listings, checkout, and payment gateways for e-commerce platforms.
Q. Could you elaborate on the role of the community in the development of this framework?
A. The Golang community has been instrumental in the language’s growth. The Gofr.dev framework has been built over the past decade, recently being open sourced, as it accelerates development. With hundreds of developers contributing ideas and code, the framework evolves faster. The collective opinions and experiences of the community help in identifying what features should or should not be included, enhancing the framework’s capabilities and adaptability.
Q. How do you manage contributions from different groups within the community?
A. The core team plays an important role in maintaining the integrity of the framework. While we are open to community contributions, not everything is accepted. We follow an opinionated approach, ensuring that only features beneficial for microservices are integrated. Contributors are required to provide proof, documentation, and examples of how their proposals align with the needs of developers and companies using Gofr.dev.
At the same time, we value the community’s input and have incorporated many features based on their suggestions. Decisions are made keeping in mind the best interests of Gofr.dev users, the Golang community, and the broader microservices ecosystem. Our goal is to ensure that the framework evolves in a structured way without compromising its core principles.
Q. What kind of initiatives are you engaging in to get the community on board and make it bigger?
A. One of our primary efforts includes participating in conferences. These face-to-face interactions allow us to explain the framework, its benefits, and how it works directly to developers. We organise hackathons, so that developers can experiment with ideas ranging from AI and blockchain to other emerging technologies, using Gofr.dev to build projects.
We are also attending international conferences. For example, a team member recently presented at Gophercon Africa in Kenya, a major event that helped us showcase
Gofr.dev to a wider audience.
Q. How does the framework support AI-based applications?
A. AI applications often involve ‘prompt chaining’, where multiple API calls are made in sequence. Managing such dependencies manually can be challenging, as each step depends on the successful execution of the previous one. Gofr.dev simplifies this process through its built-in dependency management. It ensures that subsequent prompts only run when the preceding ones have completed successfully.
Even when integrating external AI tools like OpenAI, Gofr.dev ensures seamless API calls. For instance, it checks whether OpenAI’s services are responsive before making requests, avoiding unnecessary charges for failed responses. This observability and control allow developers to build reliable, cost-efficient AI applications.
Q. How does Gofr.dev address security concerns, especially in the context of open source?
A. Security and transparency are top priorities for Gofr.dev. All the dependencies and packages used within the framework are official and thoroughly vetted. Any packages developed internally go through three levels of testing to ensure they do not break or introduce vulnerabilities.
To further ensure security compliance, tools like Snyk and similar applications are employed to scan for vulnerabilities and ensure the framework remains secure. This commitment to security ensures developers can confidently use Gofr.dev for production-grade applications.
Q. What advice do you have for developers who want to get started with Gofr.dev?
A. Getting started with Gofr.dev is incredibly simple. All you need to do is visit our GitHub repository and follow the instructions. It will likely take you less than five minutes to set up and start using the framework. The instructions are straightforward, even for developers who are not familiar with frameworks.
For developers exploring AI-assisted code generation, Gofr.dev is also highly compatible. You can copy the documentation, feed it into tools like OpenAI or Claude, and generate the code you need. This makes it easier for developers transitioning to microservices or those experimenting with AI-driven workflows.
Q. What does the future hold for Gofr.dev?
A. The future of Gofr.dev is focused on growth and ease of use. We aim to release templates for common application types to help developers start projects quickly. We will be introducing one-click deploy functionality for ZopDev for deployment across small applications. We will also continue engaging with the developer community to refine the framework and ensure it meets real-world needs.
Ultimately, our goal is to make Gofr.dev the go-to choice for building microservices with Golang, empowering developers to build scalable, secure, and efficient applications with ease.