Polylith is a software architecture that applies functional thinking at the system scale. It helps us to build simple, maintainable, testable, and scalable systems.
If you're an audio/visual learner, then we recommend starting with the Polylith video.
If you want to jump straight into some code, then head over to the Polylith RealWorld example app.
If you're worried about how a new architecture might affect your deployment setup, then read Transitioning to Polylith.
If you prefer to start from the beginning, and take things at your own pace, then you're already in exactly the right place!
Polylith is an architecture that has been inspired by the simplicity and composability of functions.
We asked ourselves the question "what would a system look like if we could build it with high-level blocks that share the properties of functions?".
It turned out that the answer looks a lot like LEGO®:
If you join us on this journey, then you'll discover how Polylith structures code to help us develop faster and communicate our ideas better. By the end, you'll understand how to combine building blocks into systems:
We hope you'll agree that Polylith makes building systems almost as fun as playing with LEGO®!
Let's start by explaining why the current state of software architecture left us wanting more.