In a cell-based architecture the cell is defined as a collection of components. It is grouped from design and implementation into deployment. Each cell is independently deployable, manageable and observable. Inside the cell communication can communicate via supported transports of communication. External communication must happen via edge-gateways or proxy as APIs, events or streams.
Components in a cell are reusable and can be seen in multiple cells. Dependencies of a cell must be integrated via accessible endpoints, for example network endpoints as APIs, events or streams. Every component in a cell should be versioned, enforcing that each cell has a name and a version.
External communication with a cell can be achieved via three API types.