Difference between a Module & Microservice












1















This abstract gave the difference between a Microservice and an API as:




A microservice exposes it's interface, what it can do, by means of an
API. The API is the list of all endpoints that a microservice respond
when it receives a command/query. The microservice contains the API
and other internal+hidden things that it uses to respond to client's
requests.




I've worked with Modules & Microservices in Java, but is there a better way to distinctively describe the differences between a Module & a Microservice?



Based on my experience several Modules were imported as part of a Microservice project. Is a Microservice a module of some kind with additional capabilities of exposing RESTful Endpoints? What distinctively differentiates a Module from a Microservice or vice-a-versa?



Is there more we can discuss about the topic in question to clarify the potential confusion?



I have added some visual aid for further clarity:



An example of a microservice that utilises various modules (Source: Author)



Please refute if you may, and also provide reliable references in relation to your experience with microservices and modules.










share|improve this question


















  • 1





    ImO a microservice always should be at least assumed as remote.

    – aschoerk
    Nov 27 '18 at 10:55








  • 1





    A microservice must act as a runnable standalone service, a module doesn't necessarily. It may just be a collection of related classes.

    – Michael
    Nov 27 '18 at 10:55






  • 1





    There are so many definitions of microservices and modules that it's hard to tell which is correct and this might even lead to heated discussion. However, two properties that I feel distinguishes microservices from modules/libraries are the presence of a REST interface as well as the ability to run standalone (not necessarily useful but possible) - so anything that can run on its own (or in a container) and exposes a REST api could be considered a microservice.

    – Thomas
    Nov 27 '18 at 10:56






  • 2





    @Thomas REST is needlessly specific. A microservice provides an API. Often it's RESTful, but that is not a requirement.

    – Michael
    Nov 27 '18 at 10:57








  • 1





    @Michael yes that's right, however I (and that means just me) would say that the API provided would have to allow for the users to be written in different technologies without the need for special wrappers, i.e. some text based format like REST.

    – Thomas
    Nov 27 '18 at 11:03
















1















This abstract gave the difference between a Microservice and an API as:




A microservice exposes it's interface, what it can do, by means of an
API. The API is the list of all endpoints that a microservice respond
when it receives a command/query. The microservice contains the API
and other internal+hidden things that it uses to respond to client's
requests.




I've worked with Modules & Microservices in Java, but is there a better way to distinctively describe the differences between a Module & a Microservice?



Based on my experience several Modules were imported as part of a Microservice project. Is a Microservice a module of some kind with additional capabilities of exposing RESTful Endpoints? What distinctively differentiates a Module from a Microservice or vice-a-versa?



Is there more we can discuss about the topic in question to clarify the potential confusion?



I have added some visual aid for further clarity:



An example of a microservice that utilises various modules (Source: Author)



Please refute if you may, and also provide reliable references in relation to your experience with microservices and modules.










share|improve this question


















  • 1





    ImO a microservice always should be at least assumed as remote.

    – aschoerk
    Nov 27 '18 at 10:55








  • 1





    A microservice must act as a runnable standalone service, a module doesn't necessarily. It may just be a collection of related classes.

    – Michael
    Nov 27 '18 at 10:55






  • 1





    There are so many definitions of microservices and modules that it's hard to tell which is correct and this might even lead to heated discussion. However, two properties that I feel distinguishes microservices from modules/libraries are the presence of a REST interface as well as the ability to run standalone (not necessarily useful but possible) - so anything that can run on its own (or in a container) and exposes a REST api could be considered a microservice.

    – Thomas
    Nov 27 '18 at 10:56






  • 2





    @Thomas REST is needlessly specific. A microservice provides an API. Often it's RESTful, but that is not a requirement.

    – Michael
    Nov 27 '18 at 10:57








  • 1





    @Michael yes that's right, however I (and that means just me) would say that the API provided would have to allow for the users to be written in different technologies without the need for special wrappers, i.e. some text based format like REST.

    – Thomas
    Nov 27 '18 at 11:03














1












1








1


0






This abstract gave the difference between a Microservice and an API as:




A microservice exposes it's interface, what it can do, by means of an
API. The API is the list of all endpoints that a microservice respond
when it receives a command/query. The microservice contains the API
and other internal+hidden things that it uses to respond to client's
requests.




I've worked with Modules & Microservices in Java, but is there a better way to distinctively describe the differences between a Module & a Microservice?



Based on my experience several Modules were imported as part of a Microservice project. Is a Microservice a module of some kind with additional capabilities of exposing RESTful Endpoints? What distinctively differentiates a Module from a Microservice or vice-a-versa?



Is there more we can discuss about the topic in question to clarify the potential confusion?



I have added some visual aid for further clarity:



An example of a microservice that utilises various modules (Source: Author)



Please refute if you may, and also provide reliable references in relation to your experience with microservices and modules.










share|improve this question














This abstract gave the difference between a Microservice and an API as:




A microservice exposes it's interface, what it can do, by means of an
API. The API is the list of all endpoints that a microservice respond
when it receives a command/query. The microservice contains the API
and other internal+hidden things that it uses to respond to client's
requests.




I've worked with Modules & Microservices in Java, but is there a better way to distinctively describe the differences between a Module & a Microservice?



Based on my experience several Modules were imported as part of a Microservice project. Is a Microservice a module of some kind with additional capabilities of exposing RESTful Endpoints? What distinctively differentiates a Module from a Microservice or vice-a-versa?



Is there more we can discuss about the topic in question to clarify the potential confusion?



I have added some visual aid for further clarity:



An example of a microservice that utilises various modules (Source: Author)



Please refute if you may, and also provide reliable references in relation to your experience with microservices and modules.







java module architecture microservices






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 27 '18 at 10:48









S34NS34N

626715




626715








  • 1





    ImO a microservice always should be at least assumed as remote.

    – aschoerk
    Nov 27 '18 at 10:55








  • 1





    A microservice must act as a runnable standalone service, a module doesn't necessarily. It may just be a collection of related classes.

    – Michael
    Nov 27 '18 at 10:55






  • 1





    There are so many definitions of microservices and modules that it's hard to tell which is correct and this might even lead to heated discussion. However, two properties that I feel distinguishes microservices from modules/libraries are the presence of a REST interface as well as the ability to run standalone (not necessarily useful but possible) - so anything that can run on its own (or in a container) and exposes a REST api could be considered a microservice.

    – Thomas
    Nov 27 '18 at 10:56






  • 2





    @Thomas REST is needlessly specific. A microservice provides an API. Often it's RESTful, but that is not a requirement.

    – Michael
    Nov 27 '18 at 10:57








  • 1





    @Michael yes that's right, however I (and that means just me) would say that the API provided would have to allow for the users to be written in different technologies without the need for special wrappers, i.e. some text based format like REST.

    – Thomas
    Nov 27 '18 at 11:03














  • 1





    ImO a microservice always should be at least assumed as remote.

    – aschoerk
    Nov 27 '18 at 10:55








  • 1





    A microservice must act as a runnable standalone service, a module doesn't necessarily. It may just be a collection of related classes.

    – Michael
    Nov 27 '18 at 10:55






  • 1





    There are so many definitions of microservices and modules that it's hard to tell which is correct and this might even lead to heated discussion. However, two properties that I feel distinguishes microservices from modules/libraries are the presence of a REST interface as well as the ability to run standalone (not necessarily useful but possible) - so anything that can run on its own (or in a container) and exposes a REST api could be considered a microservice.

    – Thomas
    Nov 27 '18 at 10:56






  • 2





    @Thomas REST is needlessly specific. A microservice provides an API. Often it's RESTful, but that is not a requirement.

    – Michael
    Nov 27 '18 at 10:57








  • 1





    @Michael yes that's right, however I (and that means just me) would say that the API provided would have to allow for the users to be written in different technologies without the need for special wrappers, i.e. some text based format like REST.

    – Thomas
    Nov 27 '18 at 11:03








1




1





ImO a microservice always should be at least assumed as remote.

– aschoerk
Nov 27 '18 at 10:55







ImO a microservice always should be at least assumed as remote.

– aschoerk
Nov 27 '18 at 10:55






1




1





A microservice must act as a runnable standalone service, a module doesn't necessarily. It may just be a collection of related classes.

– Michael
Nov 27 '18 at 10:55





A microservice must act as a runnable standalone service, a module doesn't necessarily. It may just be a collection of related classes.

– Michael
Nov 27 '18 at 10:55




1




1





There are so many definitions of microservices and modules that it's hard to tell which is correct and this might even lead to heated discussion. However, two properties that I feel distinguishes microservices from modules/libraries are the presence of a REST interface as well as the ability to run standalone (not necessarily useful but possible) - so anything that can run on its own (or in a container) and exposes a REST api could be considered a microservice.

– Thomas
Nov 27 '18 at 10:56





There are so many definitions of microservices and modules that it's hard to tell which is correct and this might even lead to heated discussion. However, two properties that I feel distinguishes microservices from modules/libraries are the presence of a REST interface as well as the ability to run standalone (not necessarily useful but possible) - so anything that can run on its own (or in a container) and exposes a REST api could be considered a microservice.

– Thomas
Nov 27 '18 at 10:56




2




2





@Thomas REST is needlessly specific. A microservice provides an API. Often it's RESTful, but that is not a requirement.

– Michael
Nov 27 '18 at 10:57







@Thomas REST is needlessly specific. A microservice provides an API. Often it's RESTful, but that is not a requirement.

– Michael
Nov 27 '18 at 10:57






1




1





@Michael yes that's right, however I (and that means just me) would say that the API provided would have to allow for the users to be written in different technologies without the need for special wrappers, i.e. some text based format like REST.

– Thomas
Nov 27 '18 at 11:03





@Michael yes that's right, however I (and that means just me) would say that the API provided would have to allow for the users to be written in different technologies without the need for special wrappers, i.e. some text based format like REST.

– Thomas
Nov 27 '18 at 11:03












3 Answers
3






active

oldest

votes


















1














Microservices provides an API (REST or No Rest).



Microservice code could be written in a way that some bigger project could use it as a module.



When we choose it to be a microservice rather than module:




  1. We decouple it from the system which is using it

  2. This microservice can scale independently ie , use specific DB for its purpose

  3. Use whatever development language (suited best for its purpose) - if using it as module then this has to be written in the language in which majority of your code bases and modules are written

  4. Takes care of its data patch






share|improve this answer































    1














    The difference between a module and a microservice is one of packaging. Modules are programming level constructs which package and encapsulate a piece of software for reuse by other software via inclusion in a deployment (designed for in-process execution). A microservice is a deployment of a piece of software for use by other software, separated by a wire protocol.






    share|improve this answer































      1














      Module and Micro-service are totally different terminology used in software industry. I can explain with example from eCommerce industry.



      Checkout is a module which has features like shopping cart, order review, add to bag etc. This is more generic terminology.



      Micro-services are more technical and they are services independent of each other.
      For example, we can create 'add to bag' as Microservice. This will just add an item to shopping bag. Only the bag id and product to be added is required (most importantly). This service will not know other features like shipping method, payment method etc.






      share|improve this answer























        Your Answer






        StackExchange.ifUsing("editor", function () {
        StackExchange.using("externalEditor", function () {
        StackExchange.using("snippets", function () {
        StackExchange.snippets.init();
        });
        });
        }, "code-snippets");

        StackExchange.ready(function() {
        var channelOptions = {
        tags: "".split(" "),
        id: "1"
        };
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function() {
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled) {
        StackExchange.using("snippets", function() {
        createEditor();
        });
        }
        else {
        createEditor();
        }
        });

        function createEditor() {
        StackExchange.prepareEditor({
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: true,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: 10,
        bindNavPrevention: true,
        postfix: "",
        imageUploader: {
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        },
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });














        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53497953%2fdifference-between-a-module-microservice%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        1














        Microservices provides an API (REST or No Rest).



        Microservice code could be written in a way that some bigger project could use it as a module.



        When we choose it to be a microservice rather than module:




        1. We decouple it from the system which is using it

        2. This microservice can scale independently ie , use specific DB for its purpose

        3. Use whatever development language (suited best for its purpose) - if using it as module then this has to be written in the language in which majority of your code bases and modules are written

        4. Takes care of its data patch






        share|improve this answer




























          1














          Microservices provides an API (REST or No Rest).



          Microservice code could be written in a way that some bigger project could use it as a module.



          When we choose it to be a microservice rather than module:




          1. We decouple it from the system which is using it

          2. This microservice can scale independently ie , use specific DB for its purpose

          3. Use whatever development language (suited best for its purpose) - if using it as module then this has to be written in the language in which majority of your code bases and modules are written

          4. Takes care of its data patch






          share|improve this answer


























            1












            1








            1







            Microservices provides an API (REST or No Rest).



            Microservice code could be written in a way that some bigger project could use it as a module.



            When we choose it to be a microservice rather than module:




            1. We decouple it from the system which is using it

            2. This microservice can scale independently ie , use specific DB for its purpose

            3. Use whatever development language (suited best for its purpose) - if using it as module then this has to be written in the language in which majority of your code bases and modules are written

            4. Takes care of its data patch






            share|improve this answer













            Microservices provides an API (REST or No Rest).



            Microservice code could be written in a way that some bigger project could use it as a module.



            When we choose it to be a microservice rather than module:




            1. We decouple it from the system which is using it

            2. This microservice can scale independently ie , use specific DB for its purpose

            3. Use whatever development language (suited best for its purpose) - if using it as module then this has to be written in the language in which majority of your code bases and modules are written

            4. Takes care of its data patch







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 27 '18 at 14:27









            techagrammertechagrammer

            718414




            718414

























                1














                The difference between a module and a microservice is one of packaging. Modules are programming level constructs which package and encapsulate a piece of software for reuse by other software via inclusion in a deployment (designed for in-process execution). A microservice is a deployment of a piece of software for use by other software, separated by a wire protocol.






                share|improve this answer




























                  1














                  The difference between a module and a microservice is one of packaging. Modules are programming level constructs which package and encapsulate a piece of software for reuse by other software via inclusion in a deployment (designed for in-process execution). A microservice is a deployment of a piece of software for use by other software, separated by a wire protocol.






                  share|improve this answer


























                    1












                    1








                    1







                    The difference between a module and a microservice is one of packaging. Modules are programming level constructs which package and encapsulate a piece of software for reuse by other software via inclusion in a deployment (designed for in-process execution). A microservice is a deployment of a piece of software for use by other software, separated by a wire protocol.






                    share|improve this answer













                    The difference between a module and a microservice is one of packaging. Modules are programming level constructs which package and encapsulate a piece of software for reuse by other software via inclusion in a deployment (designed for in-process execution). A microservice is a deployment of a piece of software for use by other software, separated by a wire protocol.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 27 '18 at 19:22









                    Rob ConklinRob Conklin

                    5,0481917




                    5,0481917























                        1














                        Module and Micro-service are totally different terminology used in software industry. I can explain with example from eCommerce industry.



                        Checkout is a module which has features like shopping cart, order review, add to bag etc. This is more generic terminology.



                        Micro-services are more technical and they are services independent of each other.
                        For example, we can create 'add to bag' as Microservice. This will just add an item to shopping bag. Only the bag id and product to be added is required (most importantly). This service will not know other features like shipping method, payment method etc.






                        share|improve this answer




























                          1














                          Module and Micro-service are totally different terminology used in software industry. I can explain with example from eCommerce industry.



                          Checkout is a module which has features like shopping cart, order review, add to bag etc. This is more generic terminology.



                          Micro-services are more technical and they are services independent of each other.
                          For example, we can create 'add to bag' as Microservice. This will just add an item to shopping bag. Only the bag id and product to be added is required (most importantly). This service will not know other features like shipping method, payment method etc.






                          share|improve this answer


























                            1












                            1








                            1







                            Module and Micro-service are totally different terminology used in software industry. I can explain with example from eCommerce industry.



                            Checkout is a module which has features like shopping cart, order review, add to bag etc. This is more generic terminology.



                            Micro-services are more technical and they are services independent of each other.
                            For example, we can create 'add to bag' as Microservice. This will just add an item to shopping bag. Only the bag id and product to be added is required (most importantly). This service will not know other features like shipping method, payment method etc.






                            share|improve this answer













                            Module and Micro-service are totally different terminology used in software industry. I can explain with example from eCommerce industry.



                            Checkout is a module which has features like shopping cart, order review, add to bag etc. This is more generic terminology.



                            Micro-services are more technical and they are services independent of each other.
                            For example, we can create 'add to bag' as Microservice. This will just add an item to shopping bag. Only the bag id and product to be added is required (most importantly). This service will not know other features like shipping method, payment method etc.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 28 '18 at 0:43









                            challengerchallenger

                            1,1281109




                            1,1281109






























                                draft saved

                                draft discarded




















































                                Thanks for contributing an answer to Stack Overflow!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid



                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53497953%2fdifference-between-a-module-microservice%23new-answer', 'question_page');
                                }
                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

                                Calculate evaluation metrics using cross_val_predict sklearn

                                Insert data from modal to MySQL (multiple modal on website)