Hi all,
I'm aware that these kind of general questions are not exactly what Biostars is for but I'm interested in a wide range of ideas so therefore I decided to post this question.
I have been asked to create a course on microservices for a bioinformatics curriculum. While I have a reasonable grasp on the technical aspects of creating a robust, efficient RESTful web service, I find it difficult to present these concepts using practical examples that the students can work on. Students already know how to implement basic web services using the Java Spring framework which means that new concepts can be implemented easily.
For this course I am preferably looking into maybe disassembling a common bioinformatics pipeline where each student implements a single step (focus is on the API, so they need to communicate with their peers to talk about specifications) as a standalone microservice and we connect them into a single application/ pipeline at the end. One problem of course is that if a student decides to quit the course we cannot implement the full pipeline.
Other then that I am interested in hearing from other developers which software package they would like to see implemented in a self-contained microservice with a properly documented REST API.
Please let me know if you have any ideas and I'll make sure to let you know if I will use them. Also, students will put their work on Bitbucket and if they allow to have it public I will of course share the location.
Thank you for your time.
Is there any particular reason that the target app is a pipeline? Microservices seem to me to shine as part of a web application e.g. a bioinformatics database. Just seems to me a more obvious use of "microservices" is to stand as pieces of "middleware" between the "data" (whether that is an actual database of just various bioinformatics flatfiles) and a frontend, e.g. a website.
Yes, I fully agree, but many popular pipelines (such as analysis and annotation-pipelines for RNA-Seq, metagenomics, proteomics, etc.) have many branches (google image search for *omics-pipeline) which offers choices for our students. Also, even a microservice can receive some actual data and process (i.e. run some heavy backend software) this, especially since scalability is so much easier to compared to a monolith application.