-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add KISTERS case study #2637
base: master
Are you sure you want to change the base?
Add KISTERS case study #2637
Conversation
src/cases/kisters.md
Outdated
image: "/assets/images/work/aleph-alpha-background-2.jpg" # TODO | ||
imageAlt: "TODO" # TODO | ||
tags: "development / architecture / Rust" | ||
og: | ||
image: /assets/images/cases/cs-aleph-alpha-og-image.jpg # TODO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO
src/cases/kisters.md
Outdated
<!-->TODO add image for KISTERS<--> | ||
{% set imageData = { | ||
"imgPath": "/assets/images/work/aleph-alpha-graphs.jpg", | ||
"alt": "TODO", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO
4c81dde
to
1f71060
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should work a bit more on the flow but overall this is good
The concrete steps taken in filtering, grouping, and post-processing depend on dynamic inputs reflecting the needs of KISTERS’ clients. These processing steps can, therefore, not simply be executed in batches during nightly computations; they need to be carried out on user demand.</p> | ||
<p>That in and of itself warrants a well-optimized design, but in times of calamity, <strong>the amount of users requesting information may rise quickly</strong>: residents of endangered areas can use KISTERS’ software to obtain real-time information regarding their situation.</p> | ||
<p><strong>To handle traffic spikes</strong>, KISTERS’ sought to employ a design that would allow them to <strong>quickly deploy their data processing to edge functions</strong> and, in case of extreme traffic surges, allow the processing steps to be <strong>run within the browser</strong> on end user’s devices.</p> | ||
</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this could be more straightforward – it seems we're first saying they wanted to move transparently between server, edge, browser; then we talk about sth. else; than we go back to the topic of reusing code.
<div class="case-study__text"> | ||
<p>During an initial development cycle, Luca Palmieri, Mainmatter’s Principal Engineering Consultant, and Founder and Engineer Marco Otte-Witte proposed and implemented an architecture that isolates the implementation of the data processing steps in a platform-independent package<p> | ||
<p>That way, the package can be thinly wrapped for use by a web server, served as an edge function, or compiled to Web Assembly for execution in browsers.</p> | ||
</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should explain a bit how Rust and WASM allow for this easily: reusing the same code in these different environments while writing code that's super fast and efficient (which is the reason why e.g. JS which would also have been usable in those 3 environments, was not really an option)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The next section mentions the requirement of high performance. I'd like the 'How Mainmatter helped out' to focus on describing at a high level what we did, and then 'technology' to detail the design choices made
1f71060
to
550b097
Compare
src/cases/kisters.md
Outdated
<div class="case-study__section"> | ||
<h3 class="case-study__heading">The challenge</h3> | ||
<div class="case-study__text"> | ||
<p>With big data comes big computation. KISTERS wanted to <strong>handle large traffic spikes by dynamially switching</strong> between serving from a traditional server, from an edge function, or by offloading cumputation to end user's devices.</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is accurate. The data we're working with here is far from being "big data" (i.e. data that doesn't fit into the memory of a single machine).
WASM is not an option for big data, since you woulnd't be able to stream it/handle it on the client device.
The challenge is here is strictly related to the unpredictable and very spiky traffic shape.
src/cases/kisters.md
Outdated
<div class="case-study__section"> | ||
<h3 class="case-study__heading">Technology</h3> | ||
<div class="case-study__text"> | ||
<p>Given the requirement of <strong>high performance, cross-platform code sharing</strong>, and the need for <strong>integration with their current software</strong>, Rust was a natural choice as a language with which to implement the architecture.<br> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think "high performance" is not really the angle. It is also a bit vague—is it performant in terms of high throughput or low latency?
What we're really after here is efficient processing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be more precise, we're after high availability without breaking the bank and with no risk of behaviour divergence.
@LukeMathWalker @marcoow I clarified the flow a bit more and stressed the requirement of high availability without imposing huge cloud expenses. Can you have another look? |
cff67d6
to
2b0a11b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
left some suggestions
Co-authored-by: Marco Otte-Witte <[email protected]>
f82f853
to
6143cdd
Compare
Thanks again @marcoow. Just applied your suggestions |
src/cases/kisters.md
Outdated
<div class="case-study__section"> | ||
<h3 class="case-study__heading">The challenge</h3> | ||
<div class="case-study__text"> | ||
<p>To be able to <strong>handle large traffic spikes efficiently without risking astronomic cloud expenses, KISTERS needed the ability to dynamically move computation</strong> between traditional servers and edge functions, or offloading to end user's devices.</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would break this down into two sentences, a flip it around (first what they need to do, then why).
A couple of style comments, but otherwise good to go for me 👌🏻 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor tweaks and typos
Co-authored-by: Kevin Bongart <[email protected]> Co-authored-by: Luca Palmieri <[email protected]>
I processed all feedback so far. The images are still left to do @IdeliaRisella |
@hdoordt I've done most of the images. However, regarding the divider on the "technology" sub-title, do you have a specific visual you wish to show there? If you look into the others case studies, they are mostly some documentation or visuals of the work itself (e.g. user interface). I think I would need a little direction for this from you if possible. Thank you |
@IdeliaRisella let's use something that's water-related for the hero, I don't think the city photo is related to the content… Also, the |
To do:
Quote + reference @marcoow (?)