Monolithic design
This section presents extracts from the source code of the monolithic version of Jeeves. If you want to study it in detail, then the whole application can be found at https://github.com/PacktPublishing/Python-Microservices-Development-2nd-Edition/tree/main/monolith.
The first thing to consider is the retrieval of data from Slack into our application. There will be a single endpoint for this, as Slack sends all its events to the URL that the application developer configures. Later on, we can also add other endpoints to work with other environments, such as IRC, Microsoft Teams, or Discord.
We will also need a small interface to allow people to adjust the settings outside Slack, as controlling third-party authentication tokens and updating permissions for those tools is much easier using a web page. We will also need a small database to store all this information, along with other settings that we want our microservice to have.
Lastly, we will need some...