๐ RelationalAIโs Knowledge Graph Coprocessor is GA as a Snowflake Native App!
๐ง With 10x less code and complexity, customers can now build intelligent applications using a data-centric architecture based on relational knowledge graphs.
โก๏ธ https://t.co/mOEgHFyFyT
๐ News! RelationalAI, the knowledge graph coprocessor for your data clouds, has just unveiled its Snowflake Native App on the Snowflake Marketplace! Start building enterprise AI today.
https://t.co/5MEp2EmcrX
๐ news! Weโre delighted that our CEO Molham Aref (@molhamaref) was featured on Forbes. Discover how weโre working with @Snowflake to make it easier to build intelligent applications faster.
https://t.co/77uKNaqUAt
@josephdenne@edgenetwork I worked at https://t.co/DjBEVpVyft few works ago, I'm really glad to see the progress it made.
A project with huge potential lead by very talented people.
๐ช๐ต๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ผ๐ผ๐ด๐น๐ฒ ๐ฟ๐ฒ๐ฐ๐ผ๐บ๐บ๐ฒ๐ป๐ฑ ๐ ๐ผ๐ฑ๐๐น๐ฎ๐ฟ ๐ ๐ผ๐ป๐ผ๐น๐ถ๐๐ต๐ ๐ถ๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ผ๐ณ ๐ ๐ถ๐ฐ๐ฟ๐ผ๐๐ฒ๐ฟ๐๐ถ๐ฐ๐ฒ๐?
In the last decade, we have seen a massive trend of using microservices everywhere. We were building systems for a few hundred or thousand users and wanted to know how to make a system for millions of users. This was over-engineering and needed to be corrected. Why it was wrong? Because the development lasted long and we created incredibly complex systems, hard to maintain. This is especially true for startups that must go fast and stay simple.
A recent paper by authors from Google found that most of their developers split binaries for one of the following reasons: it improves performance, fault tolerance, and abstraction boundaries and allows for flexible rollouts.
Yet, splitting applications into microservices has its challenges:
๐ธ ๐๐ ๐ต๐๐ฟ๐๐ ๐ฝ๐ฒ๐ฟ๐ณ๐ผ๐ฟ๐บ๐ฎ๐ป๐ฐ๐ฒ. The overhead of serializing data and sending it across the network is increasingly becoming a bottleneck
๐ธ ๐๐ ๐ต๐๐ฟ๐๐ ๐ฐ๐ผ๐ฟ๐ฟ๐ฒ๐ฐ๐๐ป๐ฒ๐๐. It is incredibly challenging to reason about the interactions between every deployed version of every microservice.
๐ธ ๐๐ ๐๐ฎ๐ธ๐ฒ๐ ๐๐ผ๐ฟ๐ธ ๐๐ผ ๐บ๐ฎ๐ป๐ฎ๐ด๐ฒ. Rather than having a single bi-nary to build, test, and deploy, developers must manage ๐ different binaries, each on their release schedule.
๐ธ ๐๐ ๐ณ๐ฟ๐ฒ๐ฒ๐๐ฒ๐ ๐๐ฃ๐๐. Once a microservice establishes an API, it becomes easier to change by breaking the other services that consume the API.
So, they proposed the following approach:
๐ญ. ๐ช๐ฟ๐ถ๐๐ฒ ๐บ๐ผ๐ป๐ผ๐น๐ถ๐๐ต๐ถ๐ฐ ๐ฎ๐ฝ๐ฝ๐น๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป๐ that are modularized into logically distinct components. A component is a long-lived agent, similar to an actor.
๐ฎ. ๐๐ฒ๐๐ฒ๐ฟ๐ฎ๐ด๐ฒ ๐ฎ ๐ฟ๐๐ป๐๐ถ๐บ๐ฒ ๐๐ผ ๐ฑ๐๐ป๐ฎ๐บ๐ถ๐ฐ๐ฎ๐น๐น๐ and automatically assign logistical components to physical processes based on execution characteristics. So, if both components are in the same OS process, they are called regular method calls, but if they are co-located, calls are executed as RPCs over the network. Runtime decides whether these modules should be collocated or moved to different machines (and scaled, etc.).
๐ฏ. ๐๐ฒ๐ฝ๐น๐ผ๐ ๐ฎ๐ฝ๐ฝ๐น๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป๐ ๐ฎ๐๐ผ๐บ๐ถ๐ฐ๐ฎ๐น๐น๐, preventing different versions of an application from interacting.
This approach consists of two main parts: a programming model with abstraction that allows developers to write modularized applications and a runtime for building, deploying, and optimizing these applications. They claim that it reduces application latency by up to 15x and costs by up to 9x by simplifying application management and deployment.
If you want to check the framework implementing the approach from the paper, check https:// serviceweaver. dev/.
What do you think about this approach? Does it look like EJBs or CORBA?
#microservices
Tracking time is for bureaucrats. If they make you do it, find another job.
The worst part of my job was always filling out a timesheet.
Nothing made me more miserable than an end-of-day email because I forgot to send my timesheet.
Unfortunately, this is common across the industry. Middle managers want to change the world by pushing numbers on a spreadsheet.
I remember this dude who forced us to report time on every task in JIRA.
Every time we worked on something, we had to do two things:
1. Track how much time we spent working on that issue.
2. Update the estimated time to finish it.
It was a nightmare.
He called out anyone who looked like they had spent too long on something.
What do you think happens?
Everyone started cheating. Nobody cared about delivering anything anymore. The only thing that mattered was that your estimates were as close as possible to the time you reported.
It took an act of God to stop that practice, but I had PTSD until the day I quit.
Does everyone have to do this, or does this only happen in certain companies?
My unwavering opinion on current (auto-regressive) LLMs
1. They are useful as writing aids.
2. They are "reactive" & don't plan nor reason.
3. They make stuff up or retrieve stuff approximately.
4. That can be mitigated but not fixed by human feedback.
5. Better systems will come
1/ DNS โย we all use it, but what is it? The history of DNS (Domain Name System) is a fascinating one that dates back to the early days of the internet. The purpose of DNS was to provide a human-readable way of accessing resources on the internet, instead of using IP addresses.
OpenAI is working on a watermarking tool to mark GPT-generated text with a special, hidden signal.
And they have a working prototype.๐
How does it work?๐๐ป
Stack Overflow runs nine (9) on-prem servers to host all its sites, and found that giving SQL 1.5 TB RAM was more effective than caching page fragments with Redis.
And it's a monolith ๐
Awesome interview with @rla4 and @shanselman: https://t.co/ghLqKHWHqh
What are some of the algorithms we should know before taking system design interviews?
I put together a list and explained why they are important.
To learn more: https://t.co/PczMAd8Jdb