
Architecture
We have separate chapters dedicated to this later in the book. In brief, once the requirements are known, architecture is about taking key decisions and creating a blueprint of how the requirements will be realized, and the design is about contracts and mechanisms to implement them. For cloud-native development, we have taken a call to implement microservices architecture.
The microservices architecture paradigm recommends smaller deployment units that contain a unit of functionality. Hence, our product service will run its own process and have its own runtime. This makes it easier to bundle the entire runtime, and take it from development to test environments and then to production with a consistent behavior. Each product service will register itself in a service registry to be discoverable to other services. We will examine the technology choices later.