Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
jodydonetti authored Jul 21, 2024
2 parents 9418c07 + 032d3d7 commit a414235
Show file tree
Hide file tree
Showing 25 changed files with 278 additions and 51 deletions.
30 changes: 20 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
| 🙋‍♂️ Updating to `v1.0.0` ? please [read here](docs/Update_v1_0_0.md). |
|:-------|

### FusionCache is an easy to use, fast and robust cache with advanced resiliency features and an optional distributed 2nd level.
### FusionCache is an easy to use, fast and robust hybrid cache with advanced resiliency features.

It was born after years of dealing with all sorts of different types of caches: memory caching, distributed caching, http caching, CDNs, browser cache, offline cache, you name it. So I've tried to put together these experiences and came up with FusionCache.

Expand All @@ -26,7 +26,7 @@ It was born after years of dealing with all sorts of different types of caches:

</div>

It uses a memory cache (any impl of the standard `IMemoryCache` interface) as the **primary** backing store and optionally a distributed, 2nd level cache (any impl of the standard `IDistributedCache` interface) as a **secondary** backing store for better resilience and higher performance, for example in a multi-node scenario or to avoid the typical effects of a cold start (initial empty cache, maybe after a restart).
Being a hybrid cache means that it can work both as a normal memory cache (L1) or, optionally, as a multi-level cache (L1+L2) where the 2nd level can be any implementation of the standard `IDistributedCache` interface. This will get us better better scalability, better performance and more resiliency in a multi-node scenario or even just to ease cold starts (initial empty cache, maybe after a restart).

Optionally, it can also use a **backplane**: in a multi-node scenario this will send notifications to the other nodes to keep all the memory caches involved perfectly synchronized, without any additional work.

Expand All @@ -50,11 +50,17 @@ Want to start using it immediately? There's a [⭐ Quick Start](#-quick-start) f

Curious about what you can achieve from start to finish? There's a [👩‍🏫 Step By Step ](docs/StepByStep.md) guide.

More into videos? The fine folks at [On .NET](https://learn.microsoft.com/en-us/shows/on-net/) have been kind enough to invite me on the show and listen to me mumbling random caching stuff.
## 📺 Media

More into videos?

I've been lucky enough to be invited on some shows and podcasts here and there: you can find them in the [Media](docs/Media.md) section.

A good example is when the fine folks at [On .NET](https://learn.microsoft.com/en-us/shows/on-net/) invited me on the show to allow me to mumbling random caching stuff.

<div align="center">

[![On .NET Talk](docs/images/talk-on-dotnet.jpg)](https://www.youtube.com/watch?v=hCswI2goi7s)
[![On .NET Talk](docs/images/talks/on-dotnet-small.jpg)](https://www.youtube.com/watch?v=hCswI2goi7s)

</div>

Expand Down Expand Up @@ -292,16 +298,20 @@ Nothing to do here.

After years of using a lot of open source stuff for free, this is just me trying to give something back to the community.

If you find FusionCache useful just [**✉ drop me a line**](https://twitter.com/jodydonetti), I would be interested in knowing how you're using it.

And if you really want to talk about money, please consider making **❤ a donation to a good cause** of your choosing, and let me know about that.
If you really want to talk about money, please consider making **❤ a donation to a good cause** of your choosing, and let me know about that.

## 💼 Is it Production Ready :tm: ?

Yes!

FusionCache is being used **in production** on **real world projects** for years, happily handling millions of requests.
FusionCache is being used **in production** on **real world projects** for years, happily handling millions and millions of requests.

Considering that the FusionCache packages have been downloaded more than **5 million times** (thanks everybody!) it may very well be used even more.

Oh, and it is being used in products by Microsoft itself, like [Data API Builder]()!

## 😍 Are you using it?

Considering that the FusionCache packages have been downloaded more than **4 million times** (thanks everybody!) it may very well be used even more.
If you find FusionCache useful please [let me know](https://github.com/ZiggyCreatures/FusionCache/discussions/new?category=show-and-tell&title=I%27m%20using%20FusionCache!&body=%23%23%20Scenario%0ADescribe%20how%20you%20are%20using%20FusionCache:%20commercial%20product,%20oss%20project,%20monolith,%20microservice,%20web,%20mobile%20app,%20CLI,%20etc%0A%0A%23%23%20Liked%0AWhat%20you%20liked,%20features,%20docs%20or%20anything%0A%0A%23%23%20Unliked/Missing%0AThings%20you%20didn%27t%20like%20or%20felt%20was%20missing%0A%0A%23%23%20Closing%20Thoughts%0AAny%20closing%20thoughts), I'm really interested!

And again, if you are using it please [**✉ drop me a line**](https://twitter.com/jodydonetti), I'd like to know!
This is the only way for me to know how it is helping people.
4 changes: 2 additions & 2 deletions docs/AGentleIntroduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

# 🦄 A Gentle Introduction

FusionCache is an easy to use, fast and robust cache with advanced resiliency features and an optional distributed 2nd level.
FusionCache is an easy to use, fast and robust hybrid cache with advanced resiliency features.

It uses a memory cache (any impl of the standard `IMemoryCache` interface) as the **primary** backing store and, optionally, a distributed cache (any impl of the standard `IDistributedCache` interface) as a **secondary** backing store for better resilience and higher performance, for example in a multi-node scenario or to avoid the typical effects of a cold start (initial empty cache, maybe after a restart).
Being a hybrid cache means that it can work both as a normal memory cache (L1) or, optionally, as a multi-level cache (L1+L2) where the 2nd level can be any implementation of the standard `IDistributedCache` interface. This will get us better better scalability, better performance and more resiliency in a multi-node scenario or even just to ease cold starts (initial empty cache, maybe after a restart).

Optionally, it can also use a **backplane**: in a multi-node scenario this will send notifications to the other nodes to keep each node's memory cache perfectly synchronized, without any additional work.

Expand Down
132 changes: 132 additions & 0 deletions docs/Media.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<div align="center">

![FusionCache logo](logo-128x128.png)

</div>

# 📺 Media

I've been lucky enough to have been invited to some lives, podcasts and shows to talk about caching and FusionCache.

If you are more into videos that text, here's a list you may enjoy.


<br/>
<hr>
<br/>


## English Language




### On .NET (2024)

The fine folks at [On .NET](https://learn.microsoft.com/en-us/shows/on-net/) have been kind enough to invite me on the show and listen to me mumbling random caching stuff.

This is a very good introduction on the general approach and features of FusionCache, but also a useful overview of caching concepts in general.

<div align="center">

[![On .NET Talk](images/talks/on-dotnet.jpg)](https://www.youtube.com/watch?v=hCswI2goi7s)

</div>




### Open At Microsoft (2024)

In this quick talk [Davide Mauri](https://twitter.com/mauridb) let me introduce FusionCache to the audience of Open at Microsoft.
Quick and to the point.

<div align="center">

[![On .NET Talk](images/talks/open-at-microsoft.jpg)](https://www.youtube.com/watch?v=wGKSNqxN4KE)

</div>




### Data Exposed (2022)

The great [Anna Hoffman](https://twitter.com/analyticanna) has been so nice to listen to me mumble random stuff about caching on [Data Exposed](https://learn.microsoft.com/en-us/shows/data-exposed/caching-made-easy-in-azure-sql-db-with-fusioncache-data-exposed).

Thanks Anna!

<div align="center">

[![On .NET Talk](images/talks/data-exposed.jpg)](https://www.youtube.com/watch?v=V2fCUoJgVAo)

</div>


<br/>
<hr>
<br/>


## Italian Language 🤌




### Continuous Delivery (2024)

The fine folks at Continuous Delivery (by [SparkFabrik](https://www.sparkfabrik.com/it/)) invited me to talk about my experience with open source in general, and FusionCache in particular.

Oh, and also about Genziana and arrosticini 🙂

<div align="center">

[![On .NET Talk](images/talks/continuous-delivery.jpg)](https://www.youtube.com/watch?v=E6PBkalmUn8)

</div>




### Spike Time (2024)

[Alberto Mori](https://twitter.com/albx87) invited me on his Spike Time, where I've been able to see him move his first steps with FusionCache, live, unfiltered. A really nice experience that also ended up making FusionCache even better.

Thanks Alberto!

<div align="center">

[![On .NET Talk](images/talks/spike-time.jpg)](https://www.youtube.com/watch?v=hvcHIEXzaWM)

</div>




### Small Talks (2022)

The great [Roberto Messora](https://twitter.com/robymes) invited me to UgiDotNet's show Small Talks: of course the subject was FusionCache and caching in general.

Thanks Roberto!

<div align="center">

[![On .NET Talk](images/talks/small-talks.jpg)](https://www.youtube.com/watch?v=DovOX0zIuJ8)

</div>




### dotNET{podcast} (2022)

The awesome [Mauro Servienti](https://twitter.com/mauroservienti) invited me to his podcast to talk about FusionCache.

It has been a really nice talk about all things caching, thanks Mauro!

<div align="center">

[![On .NET Talk](images/talks/dotnet-podcast.jpg)](https://www.youtube.com/watch?v=TdPFULPDq-Y)

</div>

Loading

0 comments on commit a414235

Please sign in to comment.