Achieving Monolith Development Velocity (with a Microservice's Availability)

Is Google's Service Weaver the magical answer to your microservice needs?

Welcome to 116 new Bug Driven Developers this week! If you enjoy this post, forward it to your developer friends so they can join us.

Here’s what we got for you today:

  • Google’s newly announced project Service Weaver

  • What are modular monoliths and do they make sense for your architecture?

  • Banking in uncertain times

  • The new era of design

Let's start off this week by talking about Modular Monoliths and Google's Service Weaver

Before we dive into the depths of Service Weaver, let's first take a moment to understand what modular monoliths are and why they're gaining popularity among engineers.

A modular monolith is a software architecture pattern that combines the simplicity of a monolithic application with the flexibility of microservices. This hybrid creature is achieved by organizing the code into separate, well-defined modules, each focusing on a specific domain or functionality. As a result, you get the development velocity of a monolith, with the scalability and fault-tolerance of microservices when deploying.

Google's Service Weaver: Conjuring Modular Monolith Magic

As an enchanting addition to the modular monolith ecosystem, Google's Service Weaver casts a spell that sets it apart from its counterparts. This open-source framework, designed for creating single modular binaries and deploying them as microservices, brings a unique blend of features to the table:

  • Automatic RPC Translation: Service Weaver magically transforms local method calls into cross-machine RPCs during deployment. This sorcery ensures a seamless transition between monolithic development and microservice deployment, without the need for additional networking or serialization code.

  • Flexible Deployment: With a flick of its wand, Service Weaver lets you deploy your application in various environments, from your local machine to cloud platforms like Google Cloud. This adaptability empowers you to test, debug, and deploy effortlessly, without altering the application code.

  • Runtime Topology Decoupling: Service Weaver's charm lies in separating the development process from runtime considerations, such as microservice splitting, data serialization, and service discovery. This decoupling allows developers to focus exclusively on application logic, accelerating development velocity and performance.

  • In-built Libraries: Service Weaver's magical toolbox includes logging, metrics, tracing, routing, and testing libraries, making it an all-in-one solution for creating, managing, and deploying distributed applications.

Should we embrace the Modular Monolith Movement? Why It Matters for Developers

It's worth considering why this trend is gaining momentum and what it means for developers like us.

Modular monoliths offer a compelling alternative to traditional monolithic and microservices architectures. By merging the best of both worlds, they promise a streamlined development experience with flexible deployment capabilities.

The jury is still out on the impact projects like Service Weaver will have on our architectures moving forward, but with the promise of Increased Development Velocity, Scalability & Flexibility, and easy Maintainability its worth us tracking and experimenting with.

📖 Learn more here

Here are some guides we like that can be helpful to dive deeper into Modular Monoliths and Google’s Service Weaver:

🔗Links in Tech

Some additional reads we liked this week

😂 Meme of the Week

Thanks for tuning in to this week’s newsletter! If you have any questions, feel free to let us know on Twitter (Justin's Twitter) (Kevin's Twitter)

Thanks,

Justin + Kevin

P.S. What new things about Software Development did you learn this week?

Did you enjoy reading this week's Bug Driven Development?

Join the conversation

or to participate.