My company wants to do microservices and has created an outline of their plan (see below) (focused on dealing with files). I am not sure this is really microservices since I thought each microservice would have an individual data store? Also, they seem like one-offs that have no dependency on each other so in the end is this just SOA?
When I think microservices I think about the classic shopping cart/products example where it's a collection of services that truly work together.
- File Saving
- Generate MD5
- Generate Sha1
- Reduplicate (MD5)
- File Location Retrieval
- File Retrieval
- Delete/Disable/Invisible
Post Processing Services (can be async)
- Identify File Type
- Extract Text
- Extract content
- Extract Images
- Extract Metadata
- Screen Capture
File History (Part of every service)- Transcoding
- Thumbnail Generation
- Image
- Video
- Audio generation
- Descriptor Generation
- Descriptor Insertion
- Access Control/Authorization
- Tagging
- Caching
- File Relationship Management
Best Answer
In a microservices architecture each microservice is responsible for its own data. Where that data is physically stored isn't really important. It's fairly common to have a central database for efficiency and to make administration easier. It's when one service writes to a table and a different one reads from or writes to the same table that you're diverging from the microservice architecture. Having one microservice's tables next to another microservice's tables isn't an issue.