![]() Over the decades, we've evolved through many kinds of "boxes." Goto statements were "considered harmful" largely because they prevented any hierarchy at all. It's one of the hardest problems in software architecture. The deeper question then is: how big are the boxes? How much goes in each box? How do we decide when to split one big box into two smaller ones? What's the best way to connect the boxes? There are many approaches to all this. In systems design, we talk about "boxes and arrows" engineering: modules are the boxes, and interfaces are the arrows. A module is a collection of related code. Boxes and arrowsĪn interface is the connection between modules. A better approach starts with where you want to put your interfaces. There are many points in between those extremes. If you follow fads, you'll have built a monolith at least once (whether on purpose or because that's what traditional frameworks encouraged you to do), then discovered some problems with monoliths, then heard that microservices are the answer, then started rearchitecting everything as microservices.īut don't follow fads. There's a wide and nuanced continuum from "one giant service that does everything" to "infinite tiny services that each do nearly nothing." Right away, let's abandon the assumption that a monolith and a fleet of microservices are the only two options. Monoliths have a long history, going back to frameworks like CGI, Django, Rails, and PHP. Monoliths are what happen when you link everything your entire app needs into one giant program and deploy it as one big blob. Here's mine: microservices are the most extreme possible backlash against monoliths. You can find various definitions on the Internet. Can systems design answer the microservices question? ![]() In systems design explains the world, I talked about big-picture issues like second system effect, innovator’s dilemmas, and more. Lately, I get people asking me when microservices are a good idea. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |