Skip to content

Instantly share code, notes, and snippets.

{
"info": {
"_postman_id": "cb2d48b5-a05b-4f9b-85d7-50f2d1f35f23",
"name": "JWT Auth",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Register a User",
"request": {
{
"info": {
"_postman_id": "cb2d48b5-a05b-4f9b-85d7-50f2d1f35f23",
"name": "JWT Auth",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Register a User",
"request": {
@isopropylcyanide
isopropylcyanide / a.patch
Created October 17, 2021 17:11
Patch for protected banner status
diff --git a/main.go b/main.go
index 3d28cfa..ad7a3c2 100644
--- a/main.go
+++ b/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "database/sql"
"time"
@isopropylcyanide
isopropylcyanide / add_banners.go
Created October 17, 2021 17:10
Demo app that writes few entries to mysql without a protected status
package main
import (
"time"
"github.com/segmentio/ksuid"
"github.com/tjarratt/babble"
"go.uber.org/zap"
"gorm.io/driver/mysql"
@isopropylcyanide
isopropylcyanide / add_banners_protected.go
Last active October 17, 2021 17:10
Demo app that writes few entries to mysql using a protected status set per business logic
package main
import (
"database/sql"
"time"
"github.com/segmentio/ksuid"
"github.com/tjarratt/babble"
"go.uber.org/zap"
public List<Integer> processExpensiveFunctionElegant(List<Integer> inputs, int firstK) {
try {
return concurrentWorkExecutor.splitJoin(firstK,
inputs,
mathService::process,
Collectors.toList());
} catch (Exception ex) {
log.error("Error processing expensive function", ex);
return null;
public List<PaymentMethods> getTopKPaymentMethodDetails(List<Integer> paymentIds, int k) {
try {
return concurrentWorkExecutor.splitJoin(k,
paymentIds,
paymentService::fetch,
Collectors.toList());
} catch (Exception ex) {
log.error("Error processing top K payment methods", ex);
return null;
@isopropylcyanide
isopropylcyanide / ConcurrentWorkExecutor.java
Last active April 12, 2021 21:16
Concurrently execute work and aggregate results using a completion service. Tests are added. In one file for brevity.
package com.random.aman;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CompletionService;
/**
* A concurrent work executor that blocks for the final result after individual execution results
* are obtained. The results are fed into the queue represented by completion service as they are
* getting completed. Note that this behavior can be changed by using a single threaded executor
* <p>
* If execution of any individual work results in an exception, an exception is raised
*/
static class OutOfOrderConcurrentWorkExecutor implements ConcurrentWorkExecutor {
@Override
public List<Integer> processExpensiveFunctionElegant(List<Integer> inputs, int firstK) {
try {
return concurrentWorkExecutor.splitJoin(firstK,
inputs,
mathService::process,
Collectors.toList());
} catch (Exception ex) {
log.error("Error processing expensive function ", ex);
return null;