When and How to use GraphQL with microservice architecture

Definitely approach #1. Having your clients talk to multiple GraphQL services (as in approach #2) entirely defeats the purpose of using GraphQL in the first place, which is to provide a schema over your entire application data to allow fetching it in a single roundtrip. Having a shared nothing architecture might seem reasonable from the … Read more

Should services always return DTOs, or can they also return domain models?

it doesn’t feel right when domain model leaves business layer (service layer) Makes you feel like you are pulling the guts out right? According to Martin Fowler: the Service Layer defines the application’s boundery, it encapsulates the domain. In other words it protects the domain. Sometimes service needs to return data object that wasn’t defined … Read more

Difference between a “coroutine” and a “thread”?

First read: Concurrency vs Parallelism – What is the difference? Concurrency is the separation of tasks to provide interleaved execution. Parallelism is the simultaneous execution of multiple pieces of work in order to increase speed. —https://github.com/servo/servo/wiki/Design Short answer: With threads, the operating system switches running threads preemptively according to its scheduler, which is an algorithm … Read more

How is Node.js inherently faster when it still relies on Threads internally?

There are actually a few different things being conflated here. But it starts with the meme that threads are just really hard. So if they’re hard, you are more likely, when using threads to 1) break due to bugs and 2) not use them as efficiently as possible. (2) is the one you’re asking about. … Read more

Best way to allow plugins for a PHP application

You could use an Observer pattern. A simple functional way to accomplish this: <?php /** Plugin system **/ $listeners = array(); /* Create an entry point for plugins */ function hook() { global $listeners; $num_args = func_num_args(); $args = func_get_args(); if($num_args < 2) trigger_error(“Insufficient arguments”, E_USER_ERROR); // Hook name should always be first argument $hook_name … Read more

I just discovered why all ASP.Net websites are slow, and I am trying to work out what to do about it

If your page does not modify any session variables, you can opt out of most of this lock. <% @Page EnableSessionState=”ReadOnly” %> If your page does not read any session variables, you can opt out of this lock entirely, for that page. <% @Page EnableSessionState=”False” %> If none of your pages use session variables, just … Read more

Component based game engine design [closed]

Update 2013-01-07: If you want to see a good mix of component-based game engine with the (in my opinion) superior approach of reactive programming take a look at the V-Play engine. It very well integrates QTs QML property binding functionality. We did some research on CBSE in games at our university and I collected some … Read more

How do I prevent site scraping? [closed]

Note: Since the complete version of this answer exceeds Stack Overflow’s length limit, you’ll need to head to GitHub to read the extended version, with more tips and details. In order to hinder scraping (also known as Webscraping, Screenscraping, Web data mining, Web harvesting, or Web data extraction), it helps to know how these scrapers … Read more

Software Design vs. Software Architecture [closed]

You’re right yes. The architecture of a system is its ‘skeleton’. It’s the highest level of abstraction of a system. What kind of data storage is present, how do modules interact with each other, what recovery systems are in place. Just like design patterns, there are architectural patterns: MVC, 3-tier layered design, etc. Software design … Read more