Microservices vs 1-API/1-worker

Hello ! I’m trying to wrap my mind around the Temporal concepts and there is something that is bugging in my mind.

So let’s say that we converted every microservices in an architecture in temporal workflows. Would it still be necessary/interesting to have different microservices ?

Would it be better to have just 1 API server (scalable) and 1 Worker (scalable) where the API answers the client requests and transmit the call to Temporal that execute them on the worker ?

Maybe a big newbie question, but I have trouble to see how to integrate Temporal into a microservices architecture without the latter being useless in the end.

Thanks !

Edit: If you have any resources related to this, I would be happy to read/watch them.

Yes, you can build a monolith with Temporal. And quite a few teams are doing that.

IMHO, services are a solution to the organizational/deployment issues when too many developers contribute to the same deployment artifact. Temporal forces a clean architecture for your application, even if you deploy everything as a single binary. When you decide to break this binary into separate services, you’ll need only minor changes if all state is kept in Temporal workflows.

Use Temporal Nexus for large organizations with many teams for cross-service communication.

Thanks for your response !

So if we imagine a growing IT department, it would make sense to start with a monolith when the team is small, to split it when the team is growing and split in smaller teams, and then to use Nexus to ensure cross-service/team communication.

Makes sense !

BTW, nothing prevents using Nexus even within a single team/binary if you need clean interfaces between components.

1 Like

Thanks for the reply, that’s exactly what I thought :slight_smile: