Build simple, secure, scalable systems with Everblack
Grackle
Fundamental synchronization primitives, served over a clean API, in a single self-contained binary.
Learn morePrimitives
- Hierarchical shared/exclusive locks
- Weighted semaphores
- Wait groups
- Barriers
Safe by default
Renewable leases, deadlines, and automatic cleanup. A crashed client never leaves a dangling lock or a wait group that blocks forever.
Powerful API
Clean and simple. All operations are atomic and safe to retry. Responses are rich enough to act on.
Durable and scalable
State is persisted and Raft-replicated for high availability, and sharded so it scales horizontally as your workload grows
Zero dependencies
One binary, embedded storage — no database, Kafka, Redis, or ZooKeeper. Start single-node, grow into a replicated, sharded cluster without changing your code.
Open Source
Grackle is Free and Open Source, under AGPL-3 License.
Moab
Durable, distributed, feature-rich task queue, served over a clean API, in a single self-contained binary.
Learn moreDurability
All enqueued tasks are persisted and replicated. A task can be removed only by an explicit confirmation from a worker that a task was successfully completed.
Pull-based model
Workers periodically pull (dequeue) tasks from queues, allowing simple scaling of the workers fleet. Workers are stateless. No poison pills ever. You can monitor queue size and the age of the oldest task in real time.
Automatic retries
Failed tasks are automatically retried. Even in the event of worker crash. Retry strategy can be configured for a queue or for each individual task. That guarantees at-least-once execution.
Scheduled Tasks
Moab allows you to schedule the time (delay) when a task will be executed.
Tasks Expiration
Tasks that are set to expire can run as long as they want, but an expiring task must be picked up before the expiration time. Expiration time can be set on each task individually.
Unique Tasks
Moab makes sure there is only a single copy of a task with a given key in the queue. You can choose to leave the original task or rewrite it (if payload or scheduled time is different).
Long running tasks
Tasks can run for hours or days as long as workers keep reporting them in-progress.
Built-in Cron
Schedule periodic tasks with built-in Cron.
Pause a queue
You can pause dequeuing from a queue with a single command. For example, in an emergency scenario.
Rate Limiter
Moab has a built-in rate limiter that works across all workers. Rate limiter is implemented with Token Bucket algorithm.
Concurrency Limiter
Regardless of how many workers are pulling tasks from a queue Moab can also limit the number of inflight tasks.
Open Source
Moab is Free and Open Source, under AGPL-3 License.
Monstera
Open source framework for building scalable stateful applications in Go. All Everblack services are powered by Monstera.
Learn moreScalability
Monstera cluster is horizontally scalable. Applications are sharded, and shards can split even further as they grow with no downtime.
High availability
Each shard is replicated with Raft. Writes are performed on the leader, reads can be performed on the leader for strong consistency or on followers for eventual consistency. There is no single point of failure in Monstera cluster.
High performance
Data and compute are brought together into a single process. You are free to use any in-memory data structure or embedded database. Unlock the full power of Go to write your business logic.
Transactions
Updates are applied sequentially, so you get serializable transactions out of the box.
Local development
No need to run the whole cluster locally. It can be run as a single process which allows you to attach debugger and explore things end to end.
Testability
By design, application cores are easily testable with unit tests, no mocks required.
Open Source
Monstera is distributed under MIT License.