Skip to main content
22 events
when toggle format what by license comment
S Mar 3, 2018 at 17:29 history edited The Pax Bisonica CC BY-SA 3.0
grammatical improvements
S Mar 3, 2018 at 17:29 history suggested Saheb Preet Singh. CC BY-SA 3.0
grammatical improvements
Mar 3, 2018 at 11:32 review Suggested edits
S Mar 3, 2018 at 17:29
Feb 27, 2018 at 19:18 history tweeted twitter.com/StackSoftEng/status/968566044074872833
Feb 17, 2018 at 13:53 vote accept The Pax Bisonica
Feb 16, 2018 at 22:18 answer added Vincent Savard timeline score: 8
Feb 15, 2018 at 21:19 comment added 9000 (I wish someone combined an answer from comments by VincentSavard and MrCochese above; I'd upvote it.)
Feb 15, 2018 at 20:37 comment added Mr Cochese If the aim of good design is to create high cohesion (put code together that regards the same topic) and low coupling (modularity, low impact of change), then this will likely create the opposite effect. The code dealing with one aspect (or bounded context) of your overall system is now split among three code bases. Your microservices are temporally coupled, as for each to work at all the others beneath it must be running. In addition, they are tightly coupled by interface, as changes to entities and fields must, by necessity, cascade up and down the chain.
Feb 15, 2018 at 20:35 comment added The Pax Bisonica Sorry for the back and forth on this, it was a difficult use case to explain, but the last comment has definitely helped to clear things up a lot for me. I do believe that, that is the appropriate solution to what we need to do. If you add that as the answer I will accept, thanks again!
Feb 15, 2018 at 20:22 comment added Vincent Savard I'm having troubles grasping your use case. When you have a monolith that you want to split into microservices, you first isolate a small part you want to extract just as if it was a stand-alone application (from the API to the DAL), then you extract it to a different application (e.g. as an independent web service), which the monolith then calls remotely. It seems to me you're trying to work your way backward: creating a service which exposes a public API but uses the monolith as data access. This is useless, you've just increased complexity for none of the benefits.
Feb 15, 2018 at 20:08 comment added The Pax Bisonica To make things worse is that these calls aren't set up yet, so will have to build two API layers simultaneously, one basically having no real use.
Feb 15, 2018 at 20:00 comment added The Pax Bisonica part of the issue is that these microservices basically do the same thing, they don't offer different solutions, the plan is to use the new API layer to proxy to the old API layer so we don't have to rewrite the persistence layer. A call from the Web App to the Web Api will look like this: Web App: GetTestObjects -> New Api Layer: GetTestObjects -> Legacy API Layer: GetTestObjects... Its very redudant
Feb 15, 2018 at 19:50 comment added Vincent Savard What do you mean, "another service entities not being updated"? Entities for the microservice A will never be used by the microservice B. If B requires data from A, then B will ask them through the public API of A.
Feb 15, 2018 at 19:46 comment added The Pax Bisonica The number one reason was to avoid having issues with the schema changing and another services entities not being updated to reflect that change. Supposedly having a service that we call into means we don't need to know anything about the data access layer and we can call the API and expect the same results... Although to me this just leads to a slew of other issues.
Feb 15, 2018 at 19:29 comment added Vincent Savard Honestly, your situation seems a bit weird to me. A microservice is already small enough to be self contained, and you absolutely don't want to expose its internals (such as database access) to other services. Thus, I don't see the point of creating another application so that the "front-end" service can talk to the "data access" service. It just adds useless overhead. Do you know why your colleagues are pushing for this design?
Feb 15, 2018 at 18:52 comment added The Pax Bisonica Yes, that is what I believe, but for whatever reason there is an internal push to use it as a proxy...
Feb 15, 2018 at 18:42 comment added Mr Cochese What does the intermediate service actually do of use in this scenario? Wouldn’t it be simpler for the UI to just call the service that actually has data access?
Feb 15, 2018 at 18:20 history edited The Pax Bisonica
adding tag
Feb 15, 2018 at 18:17 comment added The Pax Bisonica That's correct, with one exception the service to access the database was originally built to handle external requests, which it will continue to do. I'm not entirely sure if we plan on just making this a service to access the database.
Feb 15, 2018 at 18:05 comment added Vincent Savard Just to be quite sure, what exactly do you mean when you say "Web API"? Do you mean that for one "microservice", you have one service which handles incoming external request, and one service which is only used by the first one to access the database?
Feb 15, 2018 at 17:49 review First posts
Feb 15, 2018 at 17:50
Feb 15, 2018 at 17:44 history asked The Pax Bisonica CC BY-SA 3.0