3 ms·
I know I don't understand the domain at all, but I'm surprised that in this day and age you'd want a distributed system to do railway design. What aspect of the
by cbsmith 2y ago
I know I don't understand the domain at all, but I'm surprised that in this day and age you'd want a distributed system to do railway design. What aspect of the problem makes it unsuitable for running in a single process?
- solardev 2y agoDo you mean this? https://osrd.fr/en/docs/explanation/containers-architecture/ https://osrd.fr/en/docs/explanation/containers-architecture/ Could it just be the skillset that government has to? Web devs are a dime a dozen and you can probably find people to maintain/incrementally upgrade parts of it in the future easier than you could find an expert in some desktop GUI language (like .NET or Swift) that would still work after a few years of OS updates.
- p_l 2y agoEDIT2: https://osrd.fr/en/docs/reference/architecture/services/ https://osrd.fr/en/docs/reference/architecture/services/ describes it better than I did :) EDIT: The goals of OSRD include realtime cooperation between multiple entities, including timetabling and planning on short term. Thus somewhat more complex application that is "multiplayer". Part of the issue is that desktop application delivery can be troublesome, logistic wise (especially now with various cross-platform environments dying off), so if you want to serve as wide group as possible with minimal logistical hassle, web might be the way. Then you might end up building it multiprocess because it's not like you have a monolith once you have complex browser-side state...
- emersion 2y agoThe database needs to be shared between multiple actors: several teams of multiple people working in different companies. For instance, a team may be working on a single project such as a new railway or a large timetable change. Another example would be multiple freight companies requesting new routes. Additionally, the UI contains complicated elements such as custom maps with the railway network and custom graphs to visualize trains. There is a large ecosystem to implement this kind of stuff via Web technologies. A webapp also removes the need to distribute an installable binary on many different platforms (some may be quite restricted due to company policies) and many different machines (there are many users, see above). Note that the system uses a client-server architecture but isn't really distributed.
- cbsmith 2y ago> Note that the system uses a client-server architecture but isn't really distributed. Yeah, I kind of agree. The thing is, it's orchestrating multiple containers to do the job. I can't figure out why you couldn't just have one container.
- emersion 2y agoPart of the answer is that some of these services need to be scaled horizontally to be able to handle a significant number of users (e.g. tile servers, the core server), another part of the answer is architectural constraints (e.g. the core server needs to keep quite a bit of per-infrastructure data in RAM). (Of course, it's completely possible to build a single container which runs all of the services in parallel, but then monitoring/scaling/availability/etc are more difficult to handle.)
- cbsmith 2y ago> (Of course, it's completely possible to build a single container which runs all of the services in parallel, but then monitoring/scaling/availability/etc are more difficult to handle.) Having done both, I'm always surprised when people say that it is more difficult to handle running N-copies of the same container than a heterogeneous set of containers. Sure, at really large scale you can glean efficiencies from it (which is why one might do it), but there's a lot of complexity that comes with that.