Skip to content
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

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Add KISTERS case study #2637

wants to merge 10 commits into from

Conversation

hdoordt
Copy link
Member

@hdoordt hdoordt commented Feb 17, 2025

To do:

Comment on lines 12 to 16
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
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO

Comment on lines 49 to 52
<!-->TODO add image for KISTERS<-->
{% set imageData = {
"imgPath": "/assets/images/work/aleph-alpha-graphs.jpg",
"alt": "TODO",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO

Copy link
Member

@marcoow marcoow left a 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>
Copy link
Member

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>
Copy link
Member

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)

Copy link
Member Author

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

<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>
Copy link
Contributor

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.

<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>
Copy link
Contributor

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.

Copy link
Contributor

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.

@hdoordt
Copy link
Member Author

hdoordt commented Feb 18, 2025

@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?

Copy link
Member

@marcoow marcoow left a 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]>
@hdoordt
Copy link
Member Author

hdoordt commented Feb 18, 2025

Thanks again @marcoow. Just applied your suggestions

<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>
Copy link
Contributor

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).

@LukeMathWalker
Copy link
Contributor

A couple of style comments, but otherwise good to go for me 👌🏻

Copy link
Contributor

@KevinBongart KevinBongart left a 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]>
@hdoordt
Copy link
Member Author

hdoordt commented Feb 24, 2025

I processed all feedback so far. The images are still left to do @IdeliaRisella

@IdeliaRisella
Copy link
Contributor

@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

@marcoow
Copy link
Member

marcoow commented Feb 25, 2025

@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 og:image should use the same background then, not the one from the Aleph Alpha case. For the divider, we can use a similar image like the current one, just not the exact same

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants