Introducing Minefield: a lightweight graph database for dependency management.
Built with Roaring Bitmaps for lightning-fast O(1) queries, even on massive datasets.
Check it outIntroducing Minefield: a lightweight graph database for dependency management.
Built with Roaring Bitmaps for lightning-fast O(1) queries, even on massive datasets.
Check it out!
Experimenting with GraalVM native image and Netty-based Ktor. A "Hello World" app: https://t.co/xABFXhfq3c
0.007s startup time
52Mb binary
8.3Mb memory consumption on the start
~80Mb memory consumption under some load
Top 6 Tools to Turn Code into Beautiful Diagrams
- Diagrams
- Go Diagrams
- Mermaid
- PlantUML
- ASCII diagrams
- Markmap
Over to you: Did we miss anything? What's your favorite?
How do we manage configurations in a system?
The diagram shows a comparison between traditional configuration management and IaC (Infrastructure as Code).
🔹 Configuration Management
The practice is designed to manage and provision IT infrastructure through systematic and repeatable processes. This is critical for ensuring that the system performs as intended.
Traditional configuration management focuses on maintaining the desired state of the system's configuration items, such as servers, network devices, and applications, after they have been provisioned.
It usually involves initial manual setup by DevOps. Changes are managed by step-by-step commands.
🔹 What is IaC?
IaC, on the hand, represents a shift in how infrastructure is provisioned and managed, treating infrastructure setup and changes as software development practices.
IaC automates the provisioning of infrastructure, starting and managing the system through code. It often uses a declarative approach, where the desired state of the infrastructure is described.
Tools like Terraform, AWS CloudFormation, Chef, and Puppet are used to define infrastructure in code files that are source controlled.
IaC represents an evolution towards automation, repeatability, and the application of software development practices to infrastructure management.
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
Amazon’s view of services is pretty simple.
They just categorize services in two ways:
- Stateless Services that aggregate responses from other services
- Stateful Services that execute business logic based on its state stored on a persistent store.
I guess they call the second category "Stateful" since they consider the persistent store as part of the service.
Basically State + Logic.
If you have any inputs around this, do write in the comments. The diagram also tries to clarify this.
Anyways, despite the simple categories, the implementation is quite complex.
They seem to have several layers of services with call graphs that are usually more than one level deep.
As per the Dynamo research paper, a typical page request to Amazon’s website involves sending requests to over 150 services.
For them, user experience is paramount.
Therefore, each service must stick to its SLA around response time and availability percentage.
What can hurt the response time?
Usually, there are two factors:
- Executing complex business logic
- Interacting with the database.
For a typical use case, Amazon’s business logic is largely lightweight.
Therefore, the database becomes the most important factor in meeting the SLA.
And for that reason, they built a database from the ground up.
What do you think about this decision?
And what kind of database design helped Amazon deal with its scale?
🤯 DoorDash's cell-based architecture (typically used for fault isolation) surprisingly led to a cloud-cost reduction.
🗣️ "these actions made such a material dent in DoorDash's data transfer costs [...] that it caused our cloud provider to reach out to us asking whether we were experiencing a production-related incident." 🤣
https://t.co/M6RxNuMXXp by @InfoQ
Java Tip 💡
Do you remember my tweet about expressing Hibernate queries as Java streams with the JPAstreamer library (https://t.co/C5nlifbYvT)? Now, you can easily integrate them with Quarkus thanks to the `quarkus-jpastreamer` extension. Details 👉https://t.co/Ra6LqOGEvV
Java Tip 💡
With the Jinq (https://t.co/RKp8C0z0zi) library you can write database queries using Java streams. It provides a similar query style to the well-known .NET LINQ library. Of course, you can easily integrate Jinq with Spring Boot 👇
🏷️ #java#jpa#streams
We released Quarkus https://t.co/VnixtV2G0B with time series support for the Redis extension and XDS support for the gRPC extension, together with a lot of small improvements and fixes. https://t.co/KxST5dak4H